On Thu, 4 Sep 2025 21:58:50 GMT, Phil Race <[email protected]> wrote:

>> GennadiyKrivoshein has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   revert CGraphicsDevice.m constants. Update orientation constant usage
>
> src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java line 470:
> 
>> 468:     @Override
>> 469:     protected double getXRes() {
>> 470:         return hRes;
> 
> I have been unable to verify that this would be applied with a real printer 
> device resolution, because my printer is not reporting PrinterResolution. Not 
> sure why. I see it in the PPD but the call to the cups ppd API isn't finding 
> it.
> Thinking about it, this is may be the "real" problem if something in this API 
> used to work but has stopped working.

I'm able to choose and set resolution for a Zebra Label Printer, its PPD 
contains

*DefaultResolution: 300dpi
*Resolution 203dpi/203dpi: "<</HWResolution[203 203]/.....>>setpagedevice"
*Resolution 300dpi/300dpi: "<</HWResolution[300 300]/.....>>setpagedevice"
*Resolution 600dpi/600dpi: "<</HWResolution[600 600]/.....>>setpagedevice"

CUPS API returns nothing for Brother DCP-T720, and its PPD contains  
_DefaultResolution_ only.

*TTRasterizer: Type42
*DefaultResolution: 300dpi
*FreeVM: "1700000"


I'm sure the reason is the lack of _Resolution_ options. The 
_DefaultResolution_ attribute is not read in 
Java_sun_print_CUPSPrinter_getResolutions function. I tried adding a 
_ppdFindAttr(ppd_file, "DefaultResolution", NULL)_ function call and it 
returned correct default value.

> src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java line 795:
> 
>> 793:         return scaledPage;
>> 794:     }
>> 795: 
> 
> This is something of an abuse of these APIs which are *specified* to have 
> sizes in 1/72"
> 
> This is all needed here because createData takes a PageFormat.
> I looked and unless I am missing something all it ever does is use the bounds 
> to return those (now larger) device bounds.
> 
> I would consider it a better approach to modify 
> CPrinterSurfaceData.createData to accept what it really needs .. the device 
> bounds. I don't see that it needs a page format.

You absolutely right about the specified size. I moved the changes to the 
CPrinterGraphicsConfig.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25489#discussion_r2331457749
PR Review Comment: https://git.openjdk.org/jdk/pull/25489#discussion_r2331463639

Reply via email to