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