RFR: 8315113: Print request Chromaticity.MONOCHROME attribute does not work on macOS [v6]

Prasanta Sadhukhan psadhukhan at openjdk.org
Thu Apr 24 04:23:52 UTC 2025


On Fri, 21 Mar 2025 15:42:29 GMT, GennadiyKrivoshein <duke at openjdk.org> wrote:

>> This update allows users to print with grayscale using color printers.
>> Actually, it is not possible to use the "Monochrome" option from the "Color Appearance" panel. Also Chromaticity.MONOCHROME can't be used to print grayscale on color printers ([JDK-8315113](https://bugs.openjdk.org/browse/JDK-8315113)).
>> 
>> **Fix description**
>> When a printer supports color printing and a user adds Chromaticity.MONOCHROME attribute to a PrintRequestAttributeSet, then the final printing raster is transformed to the grayscale color using java.awt.image.ColorConvertOp. When the job is a PostScript job, then the "setColor" and "setPaint" methods of the Graphics are overridden, and user colors (paints) are transformed to the grayscale form using the new proxy class GrayscaleProxyGraphics2D.
>> 
>> This approach is assumed to be platform, CUPS, and IPP protocol independent.
>> 
>> **Tests**
>> The fix was tested on Ubuntu 22.04 and MacOS 12.6.1.
>
> GennadiyKrivoshein has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Use PassFailJFrame for test.
>   Move GrayscaleProxyGraphics2D.java to the shared classes.
>   Update copyright year.

Marked as reviewed by psadhukhan (Reviewer).

-------------

PR Review: https://git.openjdk.org/jdk/pull/21930#pullrequestreview-2789630188


More information about the client-libs-dev mailing list