[OpenJDK 2D-Dev] [9] RFR 4987884: PrinterJob carries over some values between calls to print.
Prasanta Sadhukhan
prasanta.sadhukhan at oracle.com
Mon Aug 29 08:11:26 UTC 2016
Hi All,
If we call
-----------------
/ pageFormat = job.pageDialog(pageFormat);//
// pageFormat.setPaper(paper);//
// job.setPrintable(p, pageFormat);//
////
// try {//
// job.printDialog();//
// job.print();//
// } catch (PrinterException e) {}//
/-------------------
then these attributes are added
Media, OrientationRequested, MediaPrintableArea, Chromaticity,
PrinterResolution, Copies, SheetCollate, Sides
even if we do not change any fields
and PageRanges attribute is added if we change page selection from "All"
to "Pages".
In light of that, I do not think we can remove PageRanges attribute from
no-args print() method as that will remove user selection.
Or for that matter, any attributes as those can be set via pageDialog
or printDialog.
I guess we need to mark this as "Wont fix" . spec also is not clear if
we are not supposed to honour any attributes already set, if we call
no-args print() method.
Any comments?
Regards
Prasanta
On 7/5/2016 10:52 AM, Prasanta Sadhukhan wrote:
> Hi All,
>
> Please review a fix whereby it is seen that the PageRanges attribute
> passed to 1st print() call is inadvertently been carried forward to
> 2nd print
> if some program tries calling in this sequence
> ----------
> /PrinterJob pj = PrinterJob.getPrinterJob();//
> //pj.setPageable(..)//
> //pj.print(..)//
> //pj.setPageable(..)//
> //pj.print(..)
> ------------
> /
> Bug: https://bugs.openjdk.java.net/browse/JDK-4987884/
> /webrev: http://cr.openjdk.java.net/~psadhukhan/4987884/webrev.00//
>
> /This is because no-args print() uses an internal attribute set which
> is presumed to carry over information not supplied
> by the client directly but created during a call to no-args
> printDialog() or during call to setPrintable() called via setAttributes().
> but it apparently seems, we should not be remembering PageRange
> attribute between calls to print() as it will result in wrong page
> numbers being printed.
>
> Proposed fix to remove the PageRanges attribute from no-args print()
> between print() calls.
>
> Regards
> Prasanta
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20160829/c9782b03/attachment.html>
More information about the 2d-dev
mailing list