[poppler] Scaling factor and placement accuracy

pqt at LEFerguson.com pqt at LEFerguson.com
Tue Mar 21 18:06:22 UTC 2017


OK, this is going to seem awfully picky, so with apologies in advance.

Can anyone offer some guidance as to whether scale factors, when doing a renderToImage, have an internal effect on accuracy?

I have been chasing a very minor, but very annoying issue, and I think it comes down to what scale factor is in use.  The application I wrote dynamically scales the PDF page image to the nearest size it can to completely fill the page while maintaining aspect ratio.

This displays music. The music is sometimes (specifically when coming from notation software) individual items, where each note is a PDF element. In those cases, sometimes, not often but sometimes the notes are misplaced a bit.  I am attaching an example.  I actually have seen much worse, but I had this handy with all the debugging.

On the bottom example it is a screen shot of Adobe's reader.  The top is Poppler's rendering at scale 150.  The middle is the problem example, it is scaled 98.1818 (I have rescaled the screen shots to be the same size in photoshop to produce the collage for viewing).

Notice the ever so slightly higher position of the F's (second from top note) on the middle staff.  I've tried to indicate the center with the hand-drawn arrow.

That may seem like a slight issue, but these are occurring quite a lot, and they fool the eye when sight reading causing you to think it is the wrong note.

Originally I thought it was the notational software, but Adobe's viewer, and even Poppler at some scaling factors places them perfectly.  At others they are shifted.

I plan to now do some experimentation with different roundings, and try to see a pattern, but for people who know the code ... is there any guidance?   Like use integers, or some other limitations on scale factors?   Or perhaps are there any compilation options that impact the accuracy of the calculations? 

This is the latest committed version of poppler pulled and built from source today with the default rendering engine (Splash) and with hints Antialiasing, TextAntialiasing, and ThinLineSolid turned on .  The problems have been on the Raspberry pi, so it's 32 bit os, but both the top and middle example in the attachment are on the Pi, so it is not always an issue.

Anyway, again apologies if this seems like an awfully trivial item, but was just hoping someone may have encountered similar issues and had any advice.

Linwood Ferguson

-------------- next part --------------
A non-text attachment was scrubbed...
Name: scale.jpg
Type: image/jpeg
Size: 54939 bytes
Desc: scale.jpg
URL: <https://lists.freedesktop.org/archives/poppler/attachments/20170321/c1f16193/attachment-0001.jpg>


More information about the poppler mailing list