RFR: 8344119: CUPSPrinter does not respect PostScript printer definition specification in case of reading ImageableArea values from PPD files
Prasanta Sadhukhan
psadhukhan at openjdk.org
Tue Dec 10 10:07:37 UTC 2024
On Thu, 14 Nov 2024 16:15:46 GMT, GennadiyKrivoshein <duke at openjdk.org> wrote:
> **Description:**
> The PR updates sun.print.CUPSPrinter's behavior in terms of reading media imageable area values according to the PostScript Printer Description File Format Specification.
> The actual implementation reads X and Y coordinates of the upper right corner of the imageable area as width and height of the imageable area. https://bugs.openjdk.org/browse/JDK-8344119
>
> **Updates:**
> Added subtraction of the X and Y coordinates of the lower left corner to fix the width and height values of the imageable area.
>
> **Tests:**
> Tested with `test/jdk/javax/print/DialogMargins.java` using Brother DCP-T720DW, the test draws a black line along the borders of the imageable area.
> The test was run with the minimum possible margins.
> _Before the fix_: the right and bottom lines are not printed (the right and bottom lines are outside the printable area).
> _After the fix_: all lines are printed.
I can see the spec https://web.mit.edu/PostScript/Adobe/Documents/5003.PPD_Spec_v4.3.pdf
indeed say that that
> "The bounding box value of *ImageableArea is given as four real numbers, repre-
> senting the x and y coordinates of the lower left and upper right corners of the
> region, respectively, in the PostScript language default user space coordinate
> system."
>
but I believe it will be better if we do the correction in CUPSfuncs.c#getPageSizes() which reads the "PageSize" and store the value so that it stores the correct value in native..
Also, it will be better to add a manual test similar to what is mentioned in the description above..
-------------
PR Comment: https://git.openjdk.org/jdk/pull/22110#issuecomment-2531082681
More information about the client-libs-dev
mailing list