Massive Artifacts when printing PDF documents (IPP only?)
Steps to reproduce:
- Print any PDF document
- Have a look at the output
What happens: Some documents tend to get printed with large artifacts when printed from Linux. When printed from another computer (macOS), the artifacts are not present. The artifacts happen when printing using Firefox + native GNOME print dialog or when printing using Evince. Some of the artifacts are random (i.e. when repeatedly trying to print, they don't happen any more or at least not all the time). Some of the artifacts seem to be reproducible 100%.
What should happen: Print without artifacts.
One document which I have not yet managed to print without artifacts is this one: 332Rovereto.pdf (original URL).
Software info: cups-filesystem-2.3.3op2-7.fc34.noarch cups-libs-2.3.3op2-7.fc34.x86_64 cups-client-2.3.3op2-7.fc34.x86_64 cups-pk-helper-0.2.6-12.fc34.x86_64 cups-ipptool-2.3.3op2-7.fc34.x86_64 cups-2.3.3op2-7.fc34.x86_64 gutenprint-cups-5.3.4-2.fc34.x86_64 python3-cups-2.0.1-10.fc34.x86_64 cups-filters-libs-1.28.9-2.fc34.x86_64 cups-filters-1.28.9-2.fc34.x86_64
evince-40.4-1.fc34.x86_64 gtk3-3.24.30-1.fc34.x86_64 glib2-2.68.3-1.fc34.x86_64 gnome-settings-daemon-40.0.1-1.fc34.x86_64 kernel-5.13.9-200.fc34.x86_64
Hardware info: HP envy 4527, connected via wifi (Note: This is a really bad quality printer)
This is probably not much useful info for you. Can you please tell me which kind of info would make this issue more helpful?
Edit: Note: It seems like the issue described above only happens with the IPP driver which is available by default in GNOME. After configuring the printer with system-config-printer using HPLIP, the issue seems to be gone. This information may help narrowing down the issue.
Hi Christian,
thank you for reporting the issue!
-
Are you able to print fine from Libreoffice? Usually when I had problems with printing PDFs, printing from Libreoffice helped. Libreoffice uses a different PDF generator than GTK (cairo), which can generate a problematic PDF for your printer.
-
Ad note (just technicality)- there is no IPP driver available in GNOME - the origin of driver depends on how you 'installed' the print queue:
- A) installed via gnome-control-center: here GNOME (gnome-settings-daemon) asks for best drivers via D-BUS, specifically scp-dbus-service, which sends CUPS_GET_PPDS operation to cupsd, processes the cupsd response, choose the best - driverless > exact match > generic - and sends back the driver description. And then gnome creates a print queue - and the driver is generated from cups-filters utility
driverless. - B) you haven't installed the queue at all and it just showed up when you had wanted to print - then GNOME (gtk this time) sees your printer in Avahi response (MDNS daemon) and sends IPP request CUPS-Create-Local-Printer to make it available in CUPS - the created queue is called a temporary queue and it will be deleted once the printing is completed. The driver is generated from CUPS itself.
- HPLIP doesn't have support for IPP Everywhere/Airprint, so if you install the queue with it, the created queue will send postscript or raster to the device.
IMO the core of the problem is that a broken or unsupported (unsupported PDF version by printer or the specific PDF version support is broken in the printer) PDF is sent to cupsd itself (IIUC we don't regenerate a PDF if the final type is application/pdf), so HPLIP created queue is not affected since it doesn't send a PDF to the printer.
In cups-filters we switched preference in PPD generator to prefer image/urf if the printer supports it, but as I wrote above, I cannot say if it was used.
To sum it up:
- check if PDF printing works from Libreoffice and report here your findings
- if it doesn't work, please provide data for the job from Evince (you can use the link)
Moving this issue over to cups-filters since that is where the filters live…
Hi @genodeftest,
As mentioned by @zdohnal, try to print the PDF from Libreoffice and check whether it works or not. Also, did you setup the printer queue or did it just show up when you wanted to print?
Can you please provide your log files with debug mode on.
You can do it by running cupsctl --debug-logging to turn on debug mode.
Then, print 332Rovereto.pdf and wait until the job comes out. You can find the error log file in /var/log/cups/error_log and attach it here .
Thanks