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

  1. Gradients are not rendered correctly, might be the same problem as 2. This happens when cairo leave the rasterization of graphics to the printer.
  2. 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.
  3. 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 :/.

  4. 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.

  5. 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.

  6. 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
  7. Cairo rasterizes parts of the image. Which seems to be a combination of gradients and mask / clip operations.
  8. The "image" in e.pdf get fully ~90% rasterized
  9. Assertion using updated pdftocairo (1.15.2)

Author: Henrik Andersson

Created: 2016-06-02 Thu 16:06