Empty print output for PostScript printers which need reverse output order
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libppd (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Lunar |
Fix Released
|
High
|
Unassigned | ||
Mantic |
Fix Released
|
High
|
Unassigned |
Bug Description
This bug was originally reported upstream as
https:/
The reporter uses Fedora 38, besides Ubuntu 23.04 the second distro using cups-filters 2.x and libcupsfilters 2.x. As I am able to reproduce the bug on Ubuntu 23.04 and it is a problem many users could run into (it especially happens with driverless IPP printers) I post this bug report as base for an SRU in 23.04.
What happens here is that on certain printers the job output sent off to the printer is completely empty, zero bytes. This happens for all PostScript printers (and printers with proprietary drivers which require PostScript input, like for example Brother) which stack the pages face-up and therefore need to output the pages in reverse order.
The PPD files of the affected printers contain the following line
*DefaultOutputO
and they either do not have a "*cupsFilter; ..." or "*vupsFilter2: ..." line (PostScript printer PPDs from the printer manufacturers) or they have such a line, specifying "application/
I have already fixed the bug upstream in libppd via
https:/
[ Impact ]
This bug does not only affect Brother printers used with Brother's proprietary printer drivers, but also a good amount of PostScript printers, as mentioned all those which stack the paper face-up and therefore need to output the pages in reverse order.
[ Test Plan ]
Download the attached sample PPD file, a file to use the Brother DCP-J125 with Brother's proprietary printer driver. Also have a PDF file handy.
No printer is required for the tests, simply check size and content of the output file out.ps.
Run the following command:
cupsfilter -P DCPJ125.ppd -m application/
Then
ls -l out.ps
shows you that it is empty. With the proposed SRU package installed the file is not empty and
file out.ps
tells you that you have a PostScript file. Both "evince" and "gs" are able to display the file and it should look the same as the original PDF input file.
Also printing image files (JPG, PNG, TIFF) is affected. Test command line:
PPD=DCPJ125.ppd /usr/lib/
[ Where problems could occur ]
The patch is rather long, as on the conversion of the former "pstops" CUPS filter into the ppdFilterPSToPS() filter function function calls were replaced at too many places by other function calls. The wrong replacements got corrected with the fix. The fix got tested with both affected and not affected PPD files and with different parameters (like multiple copies, also with PPD of printers which require manual copies).
Any regression affects only PostScript printers or printers with drivers which need PostScript as input. Other printers do not use the ppdFilterPSToPS() filter function.
Changed in libppd (Ubuntu): | |
importance: | Undecided → High |
Changed in libppd (Ubuntu Lunar): | |
importance: | Undecided → High |
description: | updated |
This bug was fixed in the package libppd - 2:2.0~rc1-0ubuntu2
--------------- rc1-0ubuntu2) mantic; urgency=medium
libppd (2:2.0~
* fix-mirrored- printout- when-ppd- has-mirrorprint -option. patch: When handling- on-ppd- to-ipp- attr-conversion .patch: For -fix-printers- with-reverse- output- order.patch:
converting PPDs with “MirrorPrint” option into IPP attributes, setting
of the option (“True”/“False”) was not considered, making printouts
always come out mirrored (LP: #2018504).
* fix-resolution-
PPDs for driverless printers which take jobs in Apple/PWG Raster
format always the lowest supported resolution got selected, regardless
of the PPD default or job option settings (LP: #2022929).
* ppdfilterpstops
Printouts to PostScript printers (or printers with drivers which need
PostScript input) which drop the pages face-up and therefore need to
print in reverse order came out empty (Upstream issue #20,
LP: #2022943).
-- Till Kamppeter <email address hidden> Mon, 5 Jun 2023 19:46:27 +0200