On Sat, 1 Nov 2025 14:31:41 GMT, GennadiyKrivoshein <[email protected]> wrote:
>> The fix for the https://bugs.openjdk.org/browse/JDK-8251928. >> >> **Description**. >> This PR contains changes to be able to print with DPI higher than 72 on >> macOS, set default CPrinterJob DPI is 300 like in the PSPrinterJob. >> >> As described in the macOS drawing guide, the following steps are required to >> draw with high DPI >> (https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CocoaDrawingGuide/Transforms/Transforms.html#//apple_ref/doc/uid/TP40003290-CH204-BCICIJAJ): >> 1. Convert the user-space point, size, or rectangle value to device space >> coordinates; >> 2. Normalize the value in device space so that it is aligned to the >> appropriate pixel boundary; >> 3. Convert the normalized value back to user space; >> 4. Draw your content using the adjusted value. >> >> The 1-st step is now implemented in the CPrinterJob, a Graphics provided to >> the print method adjusted to a printer's DPI. >> The 2-nd step is a drawing process in the java code (without changes). >> The 3-rd step is now implemented in the PrinterView.m, the drawing scaled >> back to the 72 DPI. >> The 4-th step is a drawing process in the native code (without changes). >> >> **Tests**. >> I run all tests from javax.print package and there is no any regression. >> New test covers macOS and Linux only because we know its default DPI - 300. > > GennadiyKrivoshein has updated the pull request with a new target base due to > a merge or a rebase. The pull request now contains nine commits: > > - Merge branch 'openjdk:master' into macOS_printing_DPI > - Revert PeekGraphics > - Merge branch 'openjdk:master' into macOS_printing_DPI > - move scaling to GraphicsConfig, update PeekGraphics > - revert CGraphicsDevice.m constants. Update orientation constant usage > - remove setDevClip usage. Update names. Handle page format orientation. > - Merge branch 'openjdk:master' into macOS_printing_DPI > - Merge branch 'openjdk:master' into macOS_printing_DPI > - [macos] the printer DPI always be 72 Marked as reviewed by psadhukhan (Reviewer). ------------- PR Review: https://git.openjdk.org/jdk/pull/25489#pullrequestreview-3432345216
