Page size inaccurate/broken, which solution?
John Hendrikx
john.hendrikx at gmail.com
Thu Aug 31 11:47:02 UTC 2023
Did you mean javafx.print.Paper instead of java.print.Page?
If so, then I think that the getWidth/getHeight functions should be
fixed as they're not specified to do any rounding. They return a
double, and specify they return this in points. Nowhere does it mention
they're rounded to an integer number of points (in which case I would
also expect an integer return type). This seems an obvious bug.
--John
On 31/08/2023 11:39, Florian Kirmaier wrote:
> Hi JavaFX Developer!
>
> The Problem:
>
> On the class java.print.Page <http://java.print.page/>, the methods
> “getWidth" and “getHeight" don’t return the correct values.
>
> It especially causes problems when the Paper is defined in mm.
> This happens mainly because of this method, which rounds down to full
> points:
>
> private double getSizeInPoints(double dim) {
> switch (units) {
> case POINT : return (int)(dim+0.5);
> case INCH : return (int)((dim * 72) + 0.5);
> case MM : return (int)(((dim * 72) / 25.4) + 0.5);
> }
> return dim;
> }
>
> This causes problem because it makes correct computations based on the
> Paper impossible.
> So it’s basically not possible to get the size of any Paper which is
> defined based on mm.
>
> There I suggest 3 solutions:
>
> *Solution1:*
> We could just change getSIzeInPoints to return the exact value.
> Advantage: Might fix various unknown bugs in user code.
> Disadvantage: Might cause regressions.
>
> *Solution2:*
> We could add new methods getExactWidth() / getExactHeight() , which
> returns the exact value without a rounding problem anywhere noticeable.
>
> *Solution3:*
> We could provide an API to access the width/height based on a given Unit.
> like: getWidth(Unit.MM).
> We already have implemented this, in our application code, so it
> wouldn’t be much effort.
> But it would require moving com.sun.javafx.print.Units back to
> javafx.print.Paper.Units. (basically reverting JDK-8093699)
>
>
> *Summary:*
> I am happy with every solution.
> I’m a bit in favor of 1, but 2 and 3 is also ok for me.
> It would be great if someone could make a decision on which solution
> to choose, then i would provide a PR.
>
> Greetings Florian Kirmaier
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20230831/df75fd0e/attachment-0001.htm>
More information about the openjfx-dev
mailing list