[OpenJDK 2D-Dev] [9] RFR 4987884: PrinterJob carries over some values between calls to print.
Prasanta Sadhukhan
prasanta.sadhukhan at oracle.com
Mon Sep 12 07:03:00 UTC 2016
Hi All,
Updated the spec to clarify that it is expected to use the same
attribute set passed to print(PrintRequestAttributeSet) if it is called
before no-args print() method for same PrinterJob.
http://cr.openjdk.java.net/~psadhukhan/4987884/webrev.01/
Regards
Prasanta
On 8/29/2016 1:41 PM, Prasanta Sadhukhan wrote:
> 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/20160912/0efb1b4f/attachment.html>
More information about the 2d-dev
mailing list