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

Reply via email to