[OpenJDK 2D-Dev] [9] RFR: JDK-6966350:Empty pages when printing on Lexmark E352dn PS3 with "1200 IQ" setting
prasanta sadhukhan
prasanta.sadhukhan at oracle.com
Thu Jun 9 11:35:52 UTC 2016
Hi All,
Bug: https://bugs.openjdk.java.net/browse/JDK-6966350
The issue was if we select 1200IQ Normal (default) setting in Lexmark
E352dn PS3 or Dell 5310n printer, it does not print the output and we
get empty pages.
It was because DEVMODE windows structure returns 600 for
"dmPrintQuality" and 2 for "dmYResolution". For 2400IQ, it returns 600
dmPrintQuality and 4 as dmYResolution
so awt_printControl.cpp#AwtPrintControl::UpdateAttributes() calls
WPrinterJob#setResolutionDPI(xres=600, yres=2) and
RasterPrinterJob#print() gets 0.027 as yscale(=getYRes()/72 and yres = 2)
so devicetransform for normal 1200IQ dpi becomes [8.33, 0.0,
-108.0][0.0, 0.027, -108.0] so WPathGraphics#drawString() gets devPos x=
725.33, *y = -105.22**.
*so nothing gets printed.
I tried finding the significance of 1200IQ setting which just says it
enhances the images sent to the printer.
From
http://www.smallbusinesscomputing.com/testdrive/article.php/1585581/Lexmark-T420d-Printer-Review-Both-Sides-Now.htm
(although it's not the same printer)
says /"//To be fair, the LaserJet offers sharper resolution — 1,200 by
1,200 dpi, while the T420d is a 600 by 600 dpi printer with what Lexmark
calls "1,200 Image Quality" dot placement for photos"
/I modified the code to set yres to xres value if yres is less than 10 .
Although it seems to be a workaround, it prints the output.
webrev: http://cr.openjdk.java.net/~psadhukhan/6966350/webrev.00/
Regards
Prasanta
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20160609/47433c83/attachment.html>
More information about the 2d-dev
mailing list