Bug 47027 - [PATCH] Proposed correction for resolution handling
Summary: [PATCH] Proposed correction for resolution handling
Alias: None
Product: Fop - Now in Jira
Classification: Unclassified
Component: fo tree (show other bugs)
Version: trunk
Hardware: All All
: P2 regression
Target Milestone: ---
Assignee: fop-dev
Keywords: PatchAvailable
Depends on:
Reported: 2009-04-14 03:06 UTC by Jeremias Maerki
Modified: 2012-04-01 06:32 UTC (History)
0 users

my proposed patch (6.40 KB, patch)
2009-04-14 03:06 UTC, Jeremias Maerki
Details | Diff
same patch, but including another change in FOTreeTester (9.13 KB, patch)
2009-04-17 09:27 UTC, Andreas L. Delmelle
Details | Diff
correction: added missing file (11.65 KB, patch)
2009-04-17 09:34 UTC, Andreas L. Delmelle
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jeremias Maerki 2009-04-14 03:06:40 UTC
Created attachment 23489 [details]
my proposed patch

Hi Andreas,

in your revision http://svn.apache.org/viewvc?rev=764317&view=rev you intended to fix the conversion from pixels to internal millipoints. I'm afraid you seem to have misunderstood the intention of the source and target resolution. When I introduced the two resolutions the intention was that the source resolution specifies the resolution at which pixel lengths are interpreted on the source side (pixel lengths in FO, pixel lengths for bitmaps that don't have resolution information etc.). The target resolution OTOH specifies the resolution at which the output device operates. For example, if you target a 300 dpi printer, you specify 300 dpis. For the screen you'd specify 96 dpi (most probably). This value controls the number of pixels generated for a bitmap that is generated from a vector graphic image that is rendered to a pixel-based output format (like PCL or PNG).

FO     src res    layout engine.    tgt res     Output
<px>   ------->       <mpt>         ------->    <px>

The attached patch demonstrates how I would fix this. An example of the result: Specify a table column with 72px and you get 72000mpt as before at default settings (72dpi). At a higher resolution, the pixels get smaller as you have more pixels per inch. So at 144dpi, you have twice as many pixels in the same space per dimension. The pixel length is half the previous length. 72px are now 36000mpt.
Comment 1 Andreas L. Delmelle 2009-04-15 11:18:44 UTC
OK, indeed seems I misunderstood the intentions.

Patch looks fine to me (as far as I understand... my using the 'magic number' 72.0f should definitely be abandoned)
Comment 2 Andreas L. Delmelle 2009-04-17 09:27:47 UTC
Created attachment 23506 [details]
same patch, but including another change in FOTreeTester

Just wanted to go ahead and commit the changes, then noticed I had made an additional change to FOTreeTester and ResultCollector a while back, which I'd like to post for review first.

The one difference is that I made the distinction between a fatal error that arises during parsing, and a failed assertion in a test that was successfully parsed. If this makes sense, I'll commit the attached patch later this weekend (or early next week).
Comment 3 Andreas L. Delmelle 2009-04-17 09:34:04 UTC
Created attachment 23507 [details]
correction: added missing file

Forgot to include the affected AssertElement.java in the previous attachment
Comment 4 Andreas L. Delmelle 2009-04-19 10:55:15 UTC
No feedback in the meantime, so I've committed the changes: see r766492

Thanks for the feedback!
Comment 5 Glenn Adams 2012-04-01 06:32:17 UTC
batch transition pre-FOP1.0 resolved+fixed bugs to closed+fixed