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

@GennadiyKrivoshein 
Your change (at version 5767f1ceb8a62be9f4b76b0c571c97decdbd3a76) is now ready 
to be sponsored by a Committer.

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

PR Comment: https://git.openjdk.org/jdk/pull/25489#issuecomment-3512309616

Reply via email to