RFR: 8315113: Print request Chromaticity.MONOCHROME attribute does not work on macOS
GennadiyKrivoshein
duke at openjdk.org
Wed Nov 13 19:59:46 UTC 2024
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.
-------------
Commit messages:
- Update src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java
- update copyright
- formatting
- grammar fixes
- 8315113: Print request Chromaticity.MONOCHROME attribute does not work on macOS
Changes: https://git.openjdk.org/jdk/pull/21930/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=21930&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8315113
Stats: 564 lines in 7 files changed: 556 ins; 0 del; 8 mod
Patch: https://git.openjdk.org/jdk/pull/21930.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/21930/head:pull/21930
PR: https://git.openjdk.org/jdk/pull/21930
More information about the client-libs-dev
mailing list