Bug 1592752 - evince doesn't print some lines (qpdf
Summary: evince doesn't print some lines (qpdf
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: cairo
Version: 28
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Benjamin Otte
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-06-19 08:51 UTC by antonio montagnani
Modified: 2019-05-28 22:19 UTC (History)
14 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2019-05-28 22:19:41 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
test file (156.12 KB, application/pdf)
2018-06-19 08:51 UTC, antonio montagnani
no flags Details
output of my printer when using evince (845.37 KB, application/pdf)
2018-06-21 14:49 UTC, antonio montagnani
no flags Details
troubleshoot file from system-config-printer (29.27 KB, text/plain)
2018-07-14 08:56 UTC, antonio montagnani
no flags Details
journal (2.40 KB, text/plain)
2018-07-16 10:33 UTC, antonio montagnani
no flags Details
cupsd.conf file (3.15 KB, text/plain)
2018-07-16 10:45 UTC, antonio montagnani
no flags Details
cupsd.log shortened (1.43 KB, text/x-vhdl)
2018-07-16 14:20 UTC, antonio montagnani
no flags Details
Files from troubleshooting (6.25 MB, application/x-gzip)
2018-07-17 08:22 UTC, Zdenek Dohnal
no flags Details

Description antonio montagnani 2018-06-19 08:51:30 UTC
Created attachment 1452844 [details]
test file

Description of problem:
Evince doesn't print some characters of a PDF document

Version-Release number of selected component (if applicable):
evince-3.28.2-2.fc28.x86_64

How reproducible:
always

Steps to Reproduce:
1.open test document
2.
3.

Actual results:
some lines are not printed 

Expected results:
complete printing

Additional info:
qpdf prints the full document (please compare it)

Comment 1 Marek Kašík 2018-06-19 12:02:42 UTC
Hi,

could you attach a photo of the printout here? I don't have any printer available this week.

Comment 2 antonio montagnani 2018-06-21 14:49:23 UTC
Created attachment 1453526 [details]
output of my printer when using evince

when using qpdf print is correct, as the original Pdf document

Comment 3 Marek Kašík 2018-07-12 15:37:33 UTC
Hi,

it seems to me that this is an issue of the printer. I think that it advertises support for printing of PDFs but the support does not work well. I've tried to print this PDF here and it did not print at all. Which also indicates that the PDF is quite nonstandard. It has fonts stored in a strange way. Especially the "/Helv" one which is a resource in an object which is also a resource - so it is nested and the interpreter probably does not find it when it needs it. This probably confuses the PDF interpreters in the printers. Evince opens the file fine, just the printing is affected so the issue lower in the stack.
I'm reassigning this to CUPS for evaluation.

If I convert the file to ps and print, it prints ok.

Regards

Comment 4 Zdenek Dohnal 2018-07-13 14:34:46 UTC
Hi Antonio and Marek!

Thank you for reporting this issue and investigating it further! I managed to reproduce the issue on my HP OfficeJet Pro 8500 (I got similar output as Antonio) and on Canon ImageRunner (same result as Marek, the pdf wasn't print at all).

From current research:
I tried to print the attached pdf form evince, okular and by CUPS command line utility - lp:

okular - file printed fine, but file from okular cups recognizes as postscript, so it used one more filter than others - gstopdf - so I won't investigate its behavior further (tried only on HP)

, but other two - evince and lp - files from both are recognized as pdf by CUPS scheduler, so I focused on them (I'll write about printing it on Canon printer, because it produces true postscript, instead PCL for HP):

lp - file was printed fine, using filters pdftopdf and foomatic-rip(which calls gs)

evince - file wasn't printed at all, I saw in log:

cupsd[1230]: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly.

Then I checked what lp and evince send to CUPS by pdfinfo command:
- lp sends PDF file with version 1.4, optimized and produced by iText
- evince sends PDF file with version 1.5, non-optimized, produced by cairo
Binary content of files differs, but 

My hypothesis is - evince sends a pdf with different PDF version and some contents of attached pdf are kind of special and ghostcript crashes on it. Because when I print a file into FileDevice printer with Canon printer's ppd, output (which should go to the printer and already went through filters) has postscript file type, but it cannot be opened by gs. It ends with error:

GPL Ghostscript 9.22 (2017-10-04)
Copyright (C) 2017 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /undefined in ****
Operand stack:

Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1999   1   3   %oparray_pop   1998   1   3   %oparray_pop   1982   1   3   %oparray_pop   1868   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--                                                                            
Dictionary stack:
   --dict:979/1684(ro)(G)--   --dict:0/20(G)--   --dict:84/200(L)--
Current allocation mode is local
Last OS error: Resource temporarily unavailable
Current file position is 2736
GPL Ghostscript 9.22: Unrecoverable error, exit code 1


So I would reassign it to ghostscript for more investigation (I'll look for exact command line option for gs).

Antonio, would you mind attaching archive with files mentioned at https://fedoraproject.org/wiki/How_to_debug_printing_problems#Filing_a_bug_report to confirm my findings?

Comment 5 antonio montagnani 2018-07-14 08:56:07 UTC
Created attachment 1458878 [details]
troubleshoot file from system-config-printer

not sure if it is sufficient

Comment 6 Zdenek Dohnal 2018-07-16 04:50:00 UTC
Thank you!

(In reply to antonio montagnani from comment #5)
> Created attachment 1458878 [details]
> troubleshoot file from system-config-printer
> 
> not sure if it is sufficient
That's why there is mentioned to attach cupsd log too in the how-to... would you mind attaching these too?

Comment 7 antonio montagnani 2018-07-16 10:33:25 UTC
Created attachment 1459113 [details]
journal

output of journalctl -u cups -e

Comment 8 antonio montagnani 2018-07-16 10:36:12 UTC
su -c "lpinfo -l -v"
Dispositivo: uri = serial:/dev/ttyS0?baud=115200
             classe = serial
             info = Serial Port #1
             marca-e-modello = Unknown
             device-id = 
             posizione = 
Dispositivo: uri = beh
             classe = network
             info = Backend Error Handler
             marca-e-modello = Unknown
             device-id = 
             posizione = 
Dispositivo: uri = cups-pdf:/
             classe = file
             info = CUPS-PDF
             marca-e-modello = Virtual PDF Printer
             device-id = MFG:Generic;MDL:CUPS-PDF Printer;DES:Generic CUPS-PDF Printer;CLS:PRINTER;CMD:POSTSCRIPT;
             posizione = 
Dispositivo: uri = hp
             classe = direct
             info = HP Printer (HPLIP)
             marca-e-modello = Unknown
             device-id = 
             posizione = 
Dispositivo: uri = ipps
             classe = network
             info = Internet Printing Protocol (ipps)
             marca-e-modello = Unknown
             device-id = 
             posizione = 
Dispositivo: uri = https
             classe = network
             info = Internet Printing Protocol (https)
             marca-e-modello = Unknown
             device-id = 
             posizione = 
Dispositivo: uri = ipp
             classe = network
             info = Internet Printing Protocol (ipp)
             marca-e-modello = Unknown
             device-id = 
             posizione = 
Dispositivo: uri = usb://Samsung/ML-1610?serial=3921BRJL304582..
             classe = direct
             info = Samsung ML-1610
             marca-e-modello = Samsung ML-1610
             device-id = MFG:Samsung;CMD:GDI;MDL:ML-1610;CLS:PRINTER;MODE:GDI;STATUS:IDLE;
             posizione = 
Dispositivo: uri = socket
             classe = network
             info = AppSocket/HP JetDirect
             marca-e-modello = Unknown
             device-id = 
             posizione = 
Dispositivo: uri = http
             classe = network
             info = Internet Printing Protocol (http)
             marca-e-modello = Unknown
             device-id = 
             posizione = 
Dispositivo: uri = lpd
             classe = network
             info = LPD/LPR Host o stampante
             marca-e-modello = Unknown
             device-id = 
             posizione = 
Dispositivo: uri = smb
             classe = network
             info = Windows Printer via SAMBA
             marca-e-modello = Unknown
             device-id = 
             posizione = 
Dispositivo: uri = hpfax
             classe = direct
             info = HP Fax (HPLIP)
             marca-e-modello = Unknown
             device-id = 
             posizione =

Comment 9 antonio montagnani 2018-07-16 10:37:34 UTC
 grep -H '^*NickName:' /etc/cups/ppd/*.ppd
/etc/cups/ppd/Cups-PDF.ppd:*NickName:      "Generic CUPS-PDF Printer"
/etc/cups/ppd/Samsung-ML-1610.ppd:*NickName: "Samsung ML-1610, 2.0.0"

Comment 10 antonio montagnani 2018-07-16 10:45:27 UTC
Created attachment 1459121 [details]
cupsd.conf file

Comment 11 Zdenek Dohnal 2018-07-16 12:55:59 UTC
Thank you for the data!

Unfortunately, attached cupsd log doesn't contain print job logs. I updated the how-to accordingly, to sum it up, would you mind following these steps:

1) print a file from evince
2) find out JID - job id - by 'lpstat -W all' - it's number after '-' in the last line of output
3) attach file with journal log acquired by '$ journalctl -r -u cups --since=<time_when _you_printed_a_file> > cupsd.log'
4) attach file with journal log for specific job '$ journalctl -r -u cups JID=N > job.log', where N is job id

Comment 12 antonio montagnani 2018-07-16 13:48:28 UTC
lpstat -W all
Cups-PDF-3              antonio          16384   lun 02 nov 2015 08:39:52 CET
Cups-PDF-5              antonio          63488   ven 06 nov 2015 21:57:12 CET
Cups-PDF-151            antonio         190464   ven 23 set 2016 17:37:43 CEST
Samsung-ML-1610-269     antonio           1024   gio 31 mag 2018 13:37:06 CEST
Samsung-ML-1610-270     antonio           1024   gio 31 mag 2018 17:34:29 CEST
Samsung-ML-1610-271     antonio           1024   gio 31 mag 2018 17:53:30 CEST
Samsung-ML-1610-272     antonio         698368   mer 06 giu 2018 21:12:34 CEST
Samsung-ML-1610-273     antonio         596992   mer 06 giu 2018 21:22:02 CEST
Samsung-ML-1610-274     antonio         140288   mer 06 giu 2018 21:52:08 CEST
Samsung-ML-1610-275     antonio          65536   mer 06 giu 2018 21:54:46 CEST
Samsung-ML-1610-276     antonio         698368   gio 07 giu 2018 00:02:11 CEST
Samsung-ML-1610-277     antonio           1024   gio 07 giu 2018 00:03:00 CEST
Samsung-ML-1610-278     antonio           1024   gio 07 giu 2018 00:03:12 CEST
Samsung-ML-1610-279     antonio         599040   gio 07 giu 2018 12:48:56 CEST
Samsung-ML-1610-280     antonio         578560   gio 07 giu 2018 14:53:09 CEST
Samsung-ML-1610-281     antonio         128000   gio 07 giu 2018 16:07:55 CEST
Samsung-ML-1610-282     antonio         235520   gio 07 giu 2018 16:44:18 CEST
Samsung-ML-1610-283     antonio         235520   gio 07 giu 2018 16:45:41 CEST
Samsung-ML-1610-284     antonio         235520   gio 07 giu 2018 16:46:49 CEST
Samsung-ML-1610-285     antonio         384000   gio 07 giu 2018 21:06:06 CEST
Samsung-ML-1610-286     antonio         157696   lun 18 giu 2018 14:50:50 CEST
Samsung-ML-1610-287     antonio          39936   lun 18 giu 2018 14:51:06 CEST
Samsung-ML-1610-288     antonio         157696   lun 18 giu 2018 14:53:16 CEST
Samsung-ML-1610-289     antonio         160768   lun 18 giu 2018 15:12:00 CEST
Samsung-ML-1610-290     antonio          77824   lun 18 giu 2018 15:14:15 CEST
Samsung-ML-1610-291     antonio         160768   lun 18 giu 2018 15:23:00 CEST
Samsung-ML-1610-292     antonio         586752   mar 19 giu 2018 11:47:40 CEST
Samsung-ML-1610-293     antonio         599040   mar 19 giu 2018 11:51:45 CEST
Samsung-ML-1610-294     antonio         384000   lun 25 giu 2018 16:55:12 CEST
Samsung-ML-1610-295     antonio          58368   lun 25 giu 2018 18:22:05 CEST
Samsung-ML-1610-296     antonio         578560   mer 27 giu 2018 12:21:19 CEST
Samsung-ML-1610-297     antonio         698368   mer 27 giu 2018 12:22:21 CEST
Samsung-ML-1610-298     antonio         408576   mer 27 giu 2018 14:57:16 CEST
Samsung-ML-1610-299     antonio         128000   mer 27 giu 2018 15:01:00 CEST
Samsung-ML-1610-300     antonio          81920   mer 27 giu 2018 15:08:07 CEST
Samsung-ML-1610-301     antonio          54272   mer 27 giu 2018 15:08:31 CEST
Samsung-ML-1610-302     antonio          98304   mer 27 giu 2018 15:08:46 CEST
Samsung-ML-1610-303     antonio         599040   mer 27 giu 2018 15:15:27 CEST
Samsung-ML-1610-304     antonio         578560   mer 27 giu 2018 15:17:06 CEST
Samsung-ML-1610-305     antonio         140288   mer 27 giu 2018 15:29:14 CEST
Samsung-ML-1610-306     antonio          76800   mer 27 giu 2018 15:30:15 CEST
Samsung-ML-1610-307     antonio          76800   mer 27 giu 2018 15:34:19 CEST
Samsung-ML-1610-308     antonio         164864   mer 27 giu 2018 15:40:28 CEST
Samsung-ML-1610-309     antonio          57344   mer 27 giu 2018 15:40:47 CEST
Samsung-ML-1610-310     antonio          41984   mer 27 giu 2018 15:41:03 CEST
Samsung-ML-1610-311     antonio          35840   ven 29 giu 2018 11:01:08 CEST
Samsung-ML-1610-312     antonio          28672   ven 29 giu 2018 11:56:49 CEST
Samsung-ML-1610-313     antonio         538624   sab 30 giu 2018 12:05:03 CEST
Samsung-ML-1610-314     antonio         584704   sab 30 giu 2018 12:06:07 CEST
Samsung-ML-1610-315     antonio          72704   mer 11 lug 2018 15:56:01 CEST
Samsung-ML-1610-316     antonio          72704   mer 11 lug 2018 16:34:42 CEST
Samsung-ML-1610-317     antonio          17408   gio 12 lug 2018 15:10:59 CEST
Samsung-ML-1610-318     antonio          17408   gio 12 lug 2018 15:12:35 CEST
Samsung-ML-1610-320     antonio         157696   lun 16 lug 2018 12:27:19 CEST
Samsung-ML-1610-321     antonio         135168   lun 16 lug 2018 15:34:32 CEST

but the output journalctl -r -u cups JID=321 > job.log is empty
-- Logs begin at Thu 2016-11-24 11:33:08 CET, end at Mon 2018-07-16 15:42:01 CEST. --
-- No entries --

why??

Comment 13 antonio montagnani 2018-07-16 14:20:14 UTC
Created attachment 1459191 [details]
cupsd.log shortened

Comment 14 Zdenek Dohnal 2018-07-17 07:58:09 UTC
What is your network topology? Is your machine, where you issue the printing, the same machine, where you gather logs and communicates with the printer directly - not through a server?

Comment 15 Zdenek Dohnal 2018-07-17 08:09:06 UTC
And other thing - these job logs goes away after some time in journal - so you will not get any logs for an old job (that's why I mentioned print a file before gathering) if you used an old job.
I would have seen it from lpstat command's output, but I don't understand Italian.

Comment 16 Zdenek Dohnal 2018-07-17 08:22:04 UTC
Created attachment 1459346 [details]
Files from troubleshooting

Files which I created during troubleshooting - logs, pdf etc.

Comment 17 antonio montagnani 2018-07-17 11:15:13 UTC
(In reply to Zdenek Dohnal from comment #14)
> What is your network topology? Is your machine, where you issue the
> printing, the same machine, where you gather logs and communicates with the
> printer directly - not through a server?

same machine where printer is connected

Comment 18 antonio montagnani 2018-07-17 11:19:09 UTC
(In reply to Zdenek Dohnal from comment #15)
> And other thing - these job logs goes away after some time in journal - so
> you will not get any logs for an old job (that's why I mentioned print a
> file before gathering) if you used an old job.
> I would have seen it from lpstat command's output, but I don't understand
> Italian.

the last print was Samsung-ML-1610-321     antonio         135168   lun 16 lug 2018 15:34:32 CEST (juky 16, 2018) and immediately after printing I issued journalctl -r -u cups JID=321 > job.log that surprised me as it was empty.

Comment 19 Zdenek Dohnal 2018-07-17 14:23:09 UTC
(In reply to antonio montagnani from comment #17)
> (In reply to Zdenek Dohnal from comment #14)
> > What is your network topology? Is your machine, where you issue the
> > printing, the same machine, where you gather logs and communicates with the
> > printer directly - not through a server?
> 
> same machine where printer is connected

Hmm... if you are on the same machine where you issue printing and gather logs there, there should be logs. What is output of 'grep -i 'ErrorLog' /etc/cups/cups-files.conf'? And would you mind upload whole cups journal log when you issue a printing and printing successfully ends (f.e. you issue printing at 10:24 and it finishes 10:25, so you use 'journalctl -r -u cups --since=10:23 --until=10:27')?
It is really curious.

Comment 20 antonio montagnani 2018-07-17 16:48:40 UTC
journalctl -r -u cups --since=18:41 --until=18:44 > journal.log
-- Logs begin at Sat 2016-12-24 23:57:15 CET, end at Tue 2018-07-17 18:44:37 CEST. --
lug 17 18:42:38 pcdesktop1 cupsd[939]: REQUEST localhost - - "POST /printers/Samsung-ML-1610 HTTP/1.1" 200 135237 Print-Job successful-ok

[root@pcdesktop1 antonio]# grep -i 'ErrorLog' /etc/cups/cups-files.conf
ErrorLog syslog

Comment 21 Zdenek Dohnal 2018-09-06 06:02:26 UTC
When I was going through cups mailing list, I found out it could be cairo issue. It is not same issue as they speak about, but symptoms are alike - when printing from evince, the document has missing letters. when printing from some other sw (by lp command or from okular, I didn't try others) - the printout has missing letters or didn't print at all:

https://lists.cups.org/pipermail/cups/2018-September/074211.html

The symptoms are very alike - reassigning to the cairo for more debugging.

Comment 22 Zdenek Dohnal 2018-09-06 06:04:19 UTC
Quote from thread, which makes me think it could be an issue in cairo:

"Evince converts the submitted PDF to another PDF using Cairo before
sending it to CUPS/cups-filters."

Comment 23 Ben Cotton 2019-05-02 20:58:45 UTC
This message is a reminder that Fedora 28 is nearing its end of life.
On 2019-May-28 Fedora will stop maintaining and issuing updates for
Fedora 28. It is Fedora's policy to close all bug reports from releases
that are no longer maintained. At that time this bug will be closed as
EOL if it remains open with a Fedora 'version' of '28'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 28 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 24 Ben Cotton 2019-05-28 22:19:41 UTC
Fedora 28 changed to end-of-life (EOL) status on 2019-05-28. Fedora 28 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.