OpenPrinting / cups-filters

filters, backends, driverless utility, ... - Everything which CUPS 2.x needs to be used on non-Mac systems
Apache License 2.0
158 stars 126 forks source link

Use cups-pdf with cups-filters to print doesn't have effect #592

Open hustliyilin opened 3 months ago

hustliyilin commented 3 months ago

Describe the bug

When I use the cups-pdf in Linux alone to print, I can see that the printed PDF content is normal. However, when I use cups-pdf with cups-filters,the printed content is empty. I don't know what's causing it and how to locate and fix it. Could you give me some advice ? Thanks a lot.

To Reproduce Steps to reproduce the behavior:

  1. install the cups-filters and cups-pdf

  2. configure the cups-pdf and add the cups-filter to the cups-pdf's ppd configure file

    lpinfo -m | grep -i pdf
    cat /usr/share/cups/model/CUPS-PDF_noopt.ppd | grep filter
    lpadmin -p cups-pdf -v cups-pdf:/ -m CUPS-PDF_noopt.ppd -E
    lpstat -p -d

    image

  3. restart the cups by typing sudo systemctl restart cups image

  4. use the cups-pdf with cups-filters to print the test.txt by typing lp -d cups-pdf ./test.txt image

  5. view the printed file. However, the content of the out file is empty like this: image

Expected behavior

I hope to correctly configure cups-filter to print the correct content with cups-pdf. In addition, in addition to texttopdf, I have also configured other filters, but all the printed pages are blank,I don't know how to fix it.

System Information:

dkosovic commented 2 days ago

cups-pdf is really old and takes PostScript input (instead of PDF) and converts it to PDF. Some people have modernized cups-pdf to use PDF as input, e.g.:

You modified the PPD to have the following cupsFilter line: cupsFilter: "application/vnd.cups-postscript 0 /usr/lib/cups/filter/texttopdf"

So, you are trying to make texttopdf take PostScript input, why?

The stock cups-pdf will use texttopdf if you try to print a text file, e.g. lp -d cups-pdf test.txt, the filters used would be:

texttopdfpdftopdfpdftopscups-pdf

You can also issue the following to see which filters are used to generate an output PDF file with cups-pdf :

/usr/sbin/cupsfilter -p /usr/share/cops/model/CUPS-PDF_noopt.ppd -m application/pdf test.txt --list-filters