Table of Contents
1 Configuration
1.1 Windows 7
Windows 7 machine has the following print queues configured:
- direct: HP LaserJet 500 color MFP M570dn UPD PS
- printhost: HP Universal Printing PS
1.2 Windows 10
Windows 10 machine has the follow print queues configured:
- direct: HP LaserJet 500 color MFP M570 PCL6
2 Tests
Following tests has been carried out using ThinLinc 4.6.0 on RHEL 7. A set of test pdf's were gathered and named a-l.pdf.
2.1 pdftocairo
Tests are performed using pdftocairo.exe printing each test pdf on the windows workstations.
2.2 lpr
Tests are performed within a ThinLinc session. Should not differ from the pdftocairo tests due to it is just transportnig the data to the printer.
2.3 evince
Tests are performed within a ThinLinc session. Evince does things with the data when printing, eg. goes through GNOME printing.
3 Result
3.1 Matrice
workstation | Windows 7 | Windows 10 | |||||||
printer | direct | printhost | direct | ||||||
tests | pdftocairo | lpr | evince | pdftocairo | lpr | evince | pdftocairo | lpr | evince |
a.pdf | X | X | X | ||||||
b.pdf | X | X | X | ||||||
c.pdf | X | X | X | ||||||
d.pdf | X [1] | X [1] | X [1] | X [7] | X | X | |||
e.pdf | X [2] | X [2] | X [2][6] | X [8] | X [8] | X [8] | X [8] | X [3] | |
f.pdf | X | X | X | ||||||
g.pdf | X | X | X | ||||||
h.pdf | X | X | X | X | X [4] | ||||
i.pdf | X | X | X | ||||||
j.pdf | X | X | X | ||||||
k.pdf | X | X | X | X | X [4] | ||||
l.pdf | X [2][9] | X [2][9] | X [5][9] | X [7][9] | X [5][9] | X [7][9] | X [5][9] | ||
3.2 Problems and conslusions
- Gradients are not rendered correctly, might be the same problem as 2. This happens when cairo leave the rasterization of graphics to the printer.
- Looks like there is a rendering issue with gradients in copmbination with mask / clipping operator. This happens when cairo leaves the rasterization to the printer.
Only one layer rendered upper left cropped part. pdftocairo prints following error to console:
_cairo_win32_printing_surface_paint(StrtchDIBits): The data area passed to a system call is too small Internal Error: cairo error: out of memory<0a>
Found a fix in release notes of cairo 1.15.2 with the line:
-win32: fix crash from win32 surface's image size to small
Which sounded relevant and i tested to upgrade cairo which actually solved the issue.
I found the upstream commit 91f128bf7a1233a7fc2e164f95279987e32a3532 related to the realease note, which was fairly small commit and tried to backport to 1.14.6 and found out that this was already applied to 1.14.6. Even if it was noticed in release notes for 1.15.2 :/.
A blank paper, only seen when printing with evince.
When testing printing evince lpd file, using pdftocairo (1.15.2), the problem is fixed and output is in par with printing the test pdf directly using pdftocairo.
Whole image is rasterized at very low DPI. This is only reproduced using evince which mangles the data in a way that upsets pdftocairo.
Tested using updated pdftocairo (cairo 1.15.2) which hits an assertion instead of printing low res image, not good.
- Invert color of b/w image in e.pdf. This is not cairo rasterization
which works correctly when used.
- We need to verify the above statement. Might be difference evince on rhel7 vs rhel6
- Cairo rasterizes parts of the image. Which seems to be a combination of gradients and mask / clip operations.
- The "image" in e.pdf get fully ~90% rasterized
- Assertion using updated pdftocairo (1.15.2)