[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