[OpenJDK 2D-Dev] [9] RFR JDK-6601097:Margins are not reset to hardware margins when width/height is 0 or -ve alongwith x, y

Phil Race philip.race at oracle.com
Tue May 31 16:42:41 UTC 2016

Well ... few printers can print on the entire paper. Photo printers are
the ones that can do this. So Paper dimension minus the "hardware margins"
are the maximum imageable width.
And then supposing imageable x/y is some perfectly reasonable value like 
1" each
then you've set iw/ih such that even a printer with zero hardware 
margins has
an imageable area that goes off the bottom and right off the paper.

More reasonable would be to constrain iw/ih such that they work with the
requested ix/iy - assuming they are also valid.

If all else fails then just using the "default" set of values as if the 
had not set any values would be better.


On 05/26/2016 03:26 AM, prasanta sadhukhan wrote:
> Hi Phil,
> I got it rectified.
> Please find the modified webrev
> http://cr.openjdk.java.net/~psadhukhan/6601097/webrev.01/
> Regarding using entire width/height pf paper, I thought since 
> imageable width/height is invalid we should make the entire paper as 
> the imageable area.For invalid x,y we were making it to paper's top/left.
> Else what option do we have, should we calculate 
> width[height]=abs(image[width][height]) instead?
> Regards
> Prasanta
> On 5/25/2016 10:07 PM, Philip Race wrote:
>> It seems to me that you are using the wrong units.
>> You have not divided by DPI to get inches.
>> Also I am not sure that the *entire* width/height of the paper is 
>> what you want here
>> but that is secondary to the first issue
>> -phil
>> On 5/19/16, 2:59 AM, prasanta sadhukhan wrote:
>>> Hi All,
>>> Please review a fix for jdk9 which is a continuation of the fix of 
>>> JDK-6543815.
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-6601097
>>> webrev: http://cr.openjdk.java.net/~psadhukhan/6601097/webrev.00/
>>> 6543815 fix resets the x,y to 0 if they are negative before creating 
>>> a MediaPrintableArea and the platform replaces it with hardware 
>>> margins when printing.
>>> This works only if x/y is negative.
>>> But, If either width/height is negative alongwith x or y, then the 
>>> margin is set to the java def 1 inch margin and not hardware margins.
>>> This is because width/height -ve results in IAE in 
>>> MediaPrintableArea constructor and so values are ignored.
>>> Added a check for -ve width/height to make sure width/height are set 
>>> to minimum paper width/height.
>>> Regards
>>> Prasanta

More information about the 2d-dev mailing list