[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR: JDK-6966350:Empty pages when printing on Lexmark E352dn PS3 with "1200
From: Jayathirth D V <jayathirth.d.v () oracle ! com>
Date: 2016-06-17 11:02:36
Message-ID: ee335e7e-f302-4230-bc9a-1e24a0166470 () default
[Download RAW message or body]
Hi Prasanta,
Changes are fine.
Thanks,
Jay
From: prasanta sadhukhan
Sent: Friday, June 17, 2016 3:37 PM
To: Jayathirth D V
Cc: 2d-dev@openjdk.java.net
Subject: Re: [OpenJDK 2D-Dev] [9] RFR: JDK-6966350:Empty pages when printing on \
Lexmark E352dn PS3 with "1200 IQ" setting
Hi Jay,
I have modified the testcase to select the proper printable, description (it seems \
for dell 5310 it is Properties->Print Quality whereas for lexmark it is as you \
mentioned) is changed to include both printers, increased timeout, removed unused \
imports and rectified indents. \
http://cr.openjdk.java.net/~psadhukhan/6966350/webrev.02/
Regards
Prasanta
On 6/17/2016 2:47 PM, Jayathirth D V wrote:
Hi Prasanta,
One more thing I missed, there are many unneeded imports in test case. Please remove \
them also.
Thanks,
Jay
From: Jayathirth D V
Sent: Friday, June 17, 2016 2:45 PM
To: Prasanta Sadhukhan
Cc: HYPERLINK "mailto:2d-dev@openjdk.java.net"2d-dev@openjdk.java.net
Subject: Re: [OpenJDK 2D-Dev] [9] RFR: JDK-6966350:Empty pages when printing on \
Lexmark E352dn PS3 with "1200 IQ" setting
Hi Prasanta,
I tried to run the test but it looks like you are not creating object for proper \
class in test case :
88 pj.setPrintable(new PrintableDemo(), pf);
I think it should be test class name :
88 pj.setPrintable(new PrintTestLexmarkIQ(), pf);
After we change it to test class name it is working fine.
In the description of test JTextArea, I found Print quality setting under Properties \
-> Advanced -> Graphic -> Print Quality. Please verify the same.
Also please increase timeout for test case as I was looking for Print Quality setting \
and it came out.
In test case jtreg multiline comment are not indented properly.
Regarding code change, if we can be sure that in future image quality setting will \
not increase more than 6000IQ then changes are fine. Also in comments related to code \
change we can make it multiline comment instead of multiple single line comments.
Thanks,
Jay
From: Philip Race
Sent: Thursday, June 16, 2016 5:05 AM
To: prasanta sadhukhan
Cc: HYPERLINK "mailto:2d-dev@openjdk.java.net"2d-dev@openjdk.java.net
Subject: Re: [OpenJDK 2D-Dev] [9] RFR: JDK-6966350:Empty pages when printing on \
Lexmark E352dn PS3 with "1200 IQ" setting
On 6/14/16, 10:09 PM, prasanta sadhukhan wrote:
Hi Phil,
On 6/15/2016 12:21 AM, Phil Race wrote:
This sound fishy. "2" does not sound like a valid value per the Microsoft spec
but this driver is apparently considering it as something like a multiplier although
presumably not to the actual resolution.
I see that we are checking that the DM_YRESOLUTION bit of the dmFields member is set \
:
1002 int xRes = devmode->dmPrintQuality;
1003 int yRes = (devmode->dmFields & DM_YRESOLUTION) \
? 1004 devmode->dmYResolution : \
devmode->dmPrintQuality; 1005
1006 // For some printers, printer quality can \
specify 1200IQ 1007 // In this case, dmPrintQuality \
comes out 600 and 1008 // dmYResolution comes out 2 \
which is not a valid resolution 1009 // so for IQ \
setting, we specify yresolution same as xRes 1010 if \
(yRes < 10) yRes = xRes;
.. so really they ought to return a DPI value as the spec says. I can't
find anything that grants the apparent latitude being taken here.
Note that your change here looks like it may break "quality" - where
the pre-defined values are negative - as you will overwrite "-1" (for example) with \
10. Actual breakage depends on whether we bother to read yRes in the case that
xRes is negative but it still should not be over-written.
If "quality" or dmPrintQuality is pre-defined negative value (like DMRES_HIGH, \
DMRES_MEDIUM, DMRES_LOW, DMRES_DRAFT) then it will be handled in the "if" block
and my modification is in "else" .
Not following that but in any case ...
At a minimum you need to fix the code to look like :-
int yRes = (devmode->dmFields & DM_YRESOLUTION) && (devmode->dmYResolution < 10)
? devmode->dmYResolution : devmode->dmPrintQuality;
I guess you mean
devmode->dmYResolution > 10
.. yes
Anyways, I have updated webrev to accomodate your comment.
HYPERLINK "http://cr.openjdk.java.net/%7Epsadhukhan/6966350/webrev.01/"http://cr.openjdk.java.net/~psadhukhan/6966350/webrev.01/
approved since we have a comment explaining the "logic" but still puzzled.
-phil.
But I find it a little unsatisfactory to have to make this kind of workaround
and wonder what we are missing ...
I could not find anything but this will help in getting printing to be working in \
those printers. If we find anything in near future, we will update this code .
Regards
Prasanta
-phil.
On 06/09/2016 04:35 AM, prasanta sadhukhan wrote:
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: HYPERLINK "http://cr.openjdk.java.net/%7Epsadhukhan/6966350/webrev.00/"http://cr.openjdk.java.net/~psadhukhan/6966350/webrev.00/
Regards
Prasanta
[Attachment #3 (text/html)]
<html xmlns:v="urn:schemas-microsoft-com:vml" \
xmlns:o="urn:schemas-microsoft-com:office:office" \
xmlns:w="urn:schemas-microsoft-com:office:word" \
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" \
xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type \
content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 \
(filtered medium)"><style><!-- /* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman",serif;
color:black;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:12.0pt;
font-family:"Times New Roman",serif;
color:black;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
color:black;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;
color:black;}
span.new
{mso-style-name:new;}
span.link-summary
{mso-style-name:link-summary;}
span.EmailStyle22
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle23
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle25
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=EN-US link=blue \
vlink=purple><div class=WordSection1><p class=MsoNormal><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Hi \
Prasanta,<o:p></o:p></span></p><p class=MsoNormal><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p \
class=MsoNormal><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Changes are \
fine.<o:p></o:p></span></p><p class=MsoNormal><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p \
class=MsoNormal><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks,<o:p></o:p></span></p><p \
class=MsoNormal><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Jay<o:p></o:p></span></p><p \
class=MsoNormal><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><div><div \
style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p \
class=MsoNormal><b><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'>From:</span></b><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'> prasanta \
sadhukhan <br><b>Sent:</b> Friday, June 17, 2016 3:37 PM<br><b>To:</b> Jayathirth D \
V<br><b>Cc:</b> 2d-dev@openjdk.java.net<br><b>Subject:</b> Re: [OpenJDK 2D-Dev] [9] \
RFR: JDK-6966350:Empty pages when printing on Lexmark E352dn PS3 with "1200 \
IQ" setting<o:p></o:p></span></p></div></div><p \
class=MsoNormal><o:p> </o:p></p><p>Hi Jay,<o:p></o:p></p><p class=MsoNormal>I \
have modified the testcase to select the proper printable, description (it seems for \
dell 5310 it is Properties->Print Quality whereas for lexmark it is as you \
mentioned) is changed to include both printers,<br>increased timeout, removed unused \
imports and rectified indents.<br><a \
href="http://cr.openjdk.java.net/~psadhukhan/6966350/webrev.02/">http://cr.openjdk.jav \
a.net/~psadhukhan/6966350/webrev.02/</a><br><br>Regards<br>Prasanta<o:p></o:p></p><div><p \
class=MsoNormal>On 6/17/2016 2:47 PM, Jayathirth D V \
wrote:<o:p></o:p></p></div><blockquote \
style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'>Hi \
Prasanta,</span><o:p></o:p></p><p class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'> </span><o:p></o:p></p><p \
class=MsoNormal><span style='font-family:"Calibri",sans-serif;color:windowtext'>One \
more thing I missed, there are many unneeded imports in test case. Please remove them \
also.</span><o:p></o:p></p><p class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'> </span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'>Thanks,</span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'>Jay</span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><div><div \
style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p \
class=MsoNormal><b><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'>From:</span></b><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'> \
Jayathirth D V <br><b>Sent:</b> Friday, June 17, 2016 2:45 PM<br><b>To:</b> Prasanta \
Sadhukhan<br><b>Cc:</b> <a \
href="mailto:2d-dev@openjdk.java.net">2d-dev@openjdk.java.net</a><br><b>Subject:</b> \
Re: [OpenJDK 2D-Dev] [9] RFR: JDK-6966350:Empty pages when printing on Lexmark E352dn \
PS3 with "1200 IQ" setting</span><o:p></o:p></p></div></div><p \
class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'>Hi \
Prasanta,</span><o:p></o:p></p><p class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'> </span><o:p></o:p></p><p \
class=MsoNormal><span style='font-family:"Calibri",sans-serif;color:windowtext'>I \
tried to run the test but it looks like you are not creating object for proper class \
in test case :</span><o:p></o:p></p><p class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'>88 \
pj.setPrintable(new PrintableDemo(), pf);</span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'> </span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'> </span><o:p></o:p></p><p \
class=MsoNormal><span style='font-family:"Calibri",sans-serif;color:windowtext'>I \
think it should be test class name : </span><o:p></o:p></p><pre><span \
style='font-size:12.0pt;font-family:"Calibri",sans-serif;color:windowtext'>88 \
pj.setPrintable(new PrintTestLexmarkIQ(), pf);</span><o:p></o:p></pre><p \
class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'> </span><o:p></o:p></p><p \
class=MsoNormal><span style='font-family:"Calibri",sans-serif;color:windowtext'>After \
we change it to test class name it is working fine.</span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'> </span><o:p></o:p></p><p \
class=MsoNormal><span style='font-family:"Calibri",sans-serif;color:windowtext'>In \
the description of test JTextArea, I found Print quality setting under Properties \
-> Advanced -> Graphic -> Print Quality. Please verify the \
same.</span><o:p></o:p></p><p class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'>Also please increase \
timeout for test case as I was looking for Print Quality setting and it came \
out.</span><o:p></o:p></p><p class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'>In test case jtreg \
multiline comment are not indented properly.</span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'> </span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'>Regarding code change, if \
we can be sure that in future image quality setting will not increase more than \
6000IQ then changes are fine. Also in comments related to code change we can make it \
multiline comment instead of multiple single line comments.</span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'> </span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'>Thanks,</span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-family:"Calibri",sans-serif;color:windowtext'>Jay</span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p \
class=MsoNormal><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><div><div \
style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p \
class=MsoNormal><b><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'>From:</span></b><span \
style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'> Philip \
Race <br><b>Sent:</b> Thursday, June 16, 2016 5:05 AM<br><b>To:</b> prasanta \
sadhukhan<br><b>Cc:</b> <a \
href="mailto:2d-dev@openjdk.java.net">2d-dev@openjdk.java.net</a><br><b>Subject:</b> \
Re: [OpenJDK 2D-Dev] [9] RFR: JDK-6966350:Empty pages when printing on Lexmark E352dn \
PS3 with "1200 IQ" setting</span><o:p></o:p></p></div></div><p \
class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><br><br>On 6/14/16, 10:09 PM, \
prasanta sadhukhan wrote: <o:p></o:p></p><blockquote \
style='margin-top:5.0pt;margin-bottom:5.0pt'><p>Hi Phil,<o:p></o:p></p><p \
class=MsoNormal> <o:p></o:p></p><div><p class=MsoNormal>On 6/15/2016 12:21 AM, \
Phil Race wrote:<o:p></o:p></p></div><blockquote \
style='margin-top:5.0pt;margin-bottom:5.0pt'><div><pre>This sound fishy. \
"2" does not sound like a valid value per the Microsoft \
spec<o:p></o:p></pre><pre>but this driver is apparently considering it as something \
like a multiplier although<o:p></o:p></pre><pre>presumably not to the actual \
resolution.<o:p></o:p></pre><pre> <o:p></o:p></pre><pre>I see that we are \
checking that the DM_YRESOLUTION bit of the dmFields member is set \
:<o:p></o:p></pre><pre> <o:p></o:p></pre><pre>1002 \
int xRes = \
devmode->dmPrintQuality;<o:p></o:p></pre><pre>1003 \
int yRes = (devmode->dmFields & DM_YRESOLUTION) \
?<o:p></o:p></pre><pre>1004 \
devmode->dmYResolution : devmode->dmPrintQuality;<o:p></o:p></pre><pre><span \
class=new>1005 \
</span><o:p></o:p></pre><pre><span \
class=new>1006 \
// For some printers, printer quality can specify \
1200IQ</span><o:p></o:p></pre><pre><span \
class=new>1007 \
// In this case, dmPrintQuality comes out 600 and</span><o:p></o:p></pre><pre><span \
class=new>1008 \
// dmYResolution comes out 2 which is not a valid \
resolution</span><o:p></o:p></pre><pre><span \
class=new>1009 \
// so for IQ setting, we specify yresolution same as \
xRes</span><o:p></o:p></pre><pre><span \
class=new>1010 \
if (yRes < 10) yRes = xRes;</span><o:p></o:p></pre><p class=MsoNormal \
style='margin-bottom:12.0pt'><br>.. so really they ought to return a DPI value as the \
spec says. I can't<br>find anything that grants the apparent latitude being taken \
here.<br><br>Note that your change here looks like it may break "quality" - \
where<br>the pre-defined values are negative - as you will overwrite "-1" \
(for example) with 10.<br>Actual breakage depends on whether we bother to read yRes \
in the case that<br>xRes is negative but it still should not be \
over-written.<o:p></o:p></p></div></blockquote><p class=MsoNormal>If \
"quality" or dmPrintQuality is pre-defined negative value (like<strong> \
</strong>DMRES_HIGH, DMRES_MEDIUM, DMRES_LOW, DMRES_DRAFT)<br>then it will be handled \
in the "if" block<br>and my modification is in "else" \
.<o:p></o:p></p></blockquote><p class=MsoNormal style='margin-bottom:12.0pt'><br>Not \
following that but in any case ...<o:p></o:p></p><blockquote \
style='margin-top:5.0pt;margin-bottom:5.0pt'><blockquote \
style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal \
style='margin-bottom:12.0pt'>At a minimum you need to fix the code to look like \
:-<o:p></o:p></p><pre>int yRes = (devmode->dmFields & DM_YRESOLUTION) \
&& (devmode->dmYResolution < \
10)<o:p></o:p></pre><pre> \
? devmode->dmYResolution : \
devmode->dmPrintQuality;<o:p></o:p></pre></div></blockquote><p class=MsoNormal>I \
guess you mean<o:p></o:p></p><pre>devmode->dmYResolution > \
10<o:p></o:p></pre></blockquote><p class=MsoNormal \
style='margin-bottom:12.0pt'><br>.. yes<o:p></o:p></p><blockquote \
style='margin-top:5.0pt;margin-bottom:5.0pt'><pre> <o:p></o:p></pre><pre> <o:p></o:p></pre><pre>Anyways, \
I have updated webrev to accomodate your comment.<o:p></o:p></pre><pre><a \
href="http://cr.openjdk.java.net/%7Epsadhukhan/6966350/webrev.01/">http://cr.openjdk.java.net/~psadhukhan/6966350/webrev.01/</a><o:p></o:p></pre></blockquote><p \
class=MsoNormal style='margin-bottom:12.0pt'><br>approved since we have a comment \
explaining the "logic" but still \
puzzled.<br><br>-phil.<o:p></o:p></p><blockquote \
style='margin-top:5.0pt;margin-bottom:5.0pt'><pre> <o:p></o:p></pre><blockquote \
style='margin-top:5.0pt;margin-bottom:5.0pt'><div><pre><span \
class=new> </span><o:p></o:p></pre><pre><span class=new>But I find it a little \
unsatisfactory to have to make this kind of \
workaround</span><o:p></o:p></pre><pre><span class=new>and wonder what we are missing \
... </span><o:p></o:p></pre></div></blockquote><p class=MsoNormal \
style='margin-bottom:12.0pt'>I could not find anything but this will help in getting \
printing to be working in those printers. If we find anything in near future, we will \
update this code .<br><br>Regards<br>Prasanta<o:p></o:p></p><blockquote \
style='margin-top:5.0pt;margin-bottom:5.0pt'><div><pre><span \
class=new> </span><o:p></o:p></pre><p class=MsoNormal>-phil.<br><br>On \
06/09/2016 04:35 AM, prasanta sadhukhan wrote:<o:p></o:p></p></div><blockquote \
style='margin-top:5.0pt;margin-bottom:5.0pt'><p>Hi All,<o:p></o:p></p><p>Bug: <a \
href="https://bugs.openjdk.java.net/browse/JDK-6966350">https://bugs.openjdk.java.net/browse/JDK-6966350</a><o:p></o:p></p><p \
class=MsoNormal>The issue was if we select 1200IQ Normal (default) setting in Lexmark \
E352dn PS3 or <span class=link-summary>Dell 5310n printer, it does not print the \
output and we get empty pages.</span><br><br><span class=link-summary>It was because \
DEVMODE windows structure returns 600 for </span>"dmPrintQuality" and 2 for \
"dmYResolution". For 2400IQ, it returns 600 dmPrintQuality and 4 as \
dmYResolution<br>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)<br>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, <b>y = -105.22.<br></b>so nothing gets printed.<br><br>I tried \
finding the significance of 1200IQ setting which just says it enhances the images \
sent to the printer.<br>From <a \
href="http://www.smallbusinesscomputing.com/testdrive/article.php/1585581/Lexmark-T420 \
d-Printer-Review-Both-Sides-Now.htm">http://www.smallbusinesscomputing.com/testdrive/article.php/1585581/Lexmark-T420d-Printer-Review-Both-Sides-Now.htm</a> \
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic