PDF printing through CUPS backend: Got it to work. Gory details follow.

Kurt Pfeifle wrote:
Tom samba-lists at fleet.ucdavis.edu wrote on Samba-Digest:


Mon Mar 31 11:57:58 GMT 2003


Everything goes smoothly with the installation... drop 'pdfdistiller' into /usr/lib/cups/backend,


I hope you didn't use "copy'n'paste" from your browser, but "Save as..."
to get it?

I didn't. That file was fine.



chmod +x, restart cups service. Add a printer in cups with:

'lpadmin -p PDF -E -v pdf:/tmp/'

...and voila! Nothing happens.


Of course not. You have not yet associated a PPD with it, which means you
are running it as a "raw" printer.

Gentle readers, remember this lesson. A PPD file is necessary even for printing to PDF files.



Doesn't give any errors, but it won't print ('lpr -P PDF foo.ps'). Delete the printer ('lpadmin -x PDF'), download distiller.ppd (found here: http://www.pentondigitalads.com/downloads/adist4.zip). Copy new ppd file to /usr/share/cups/model. Re-add printer with:

'lpadmin -p PDF -E -v pdf:/tmp/ -m distiller.ppd'

...and there we go! Still nothing prints. :(


OK.

Did you re-start cupsd after dropping the "distiller.ppd" into
"/usr/share/cups/model/" ? This is required to allow CUPS to rebuild
its cache of available PPDs from that directory. Only if there is a
valid cache, you can install the PPD using the "-m" parameter without
the path.

Otherwise use the absolute path; then you don't need to re-start cupsd
after updating your PPD "model" directory:

'lpadmin -p PDF -E -v pdf:/tmp/ -P /usr/share/cups/model/distiller.ppd'

Do you see a "/etc/cups/ppd/PDF.ppd" ?

To check if CUPS is recogizing the newly available backend, let root run

"lpinfo -v"

and grep for "pdf".

To check if it basically works as a backend, first run it with no arguments:

"/usr/lib/cups/backend/pdfdistiller"

and it should output

'direct pdf "Unknown" "PDF Writing"'

Then run it with a wrong number of arguments (use 1, 2, 3, or 4 dummy arguments)

"/usr/lib/cups/backend/pdfdistiller 1 2 a b"

and it should output

"Usage: pdf job-id user title copies options [file]"

The PDF should go to "/tmp/", according to your installation. Backends are running
as root, and for paranoid security you may not want to write files as root into
"/tmp/". Better use a separate directory with access rights you need:


"lpadmin -p PDF -E -v pdf:/home/username/pdfs/ -P /usr/share/cups/model/distiller.ppd"

Further, the script relies on "ps2pdf" to be present on your system. Do you get
an answer to this:


"which ps2pdf"

I did restart, I did get all of those messages, 'which ps2pdf' comes up fine, everyone works great according to your docs up to this point.



Last: If you want to get some more debugging info into the CUPS error_log (in "/var/log/cups/error_log"), insert this line

"set -x"

into the "pdfdistiller" as the right after the first line. Set cupsd.conf
to "LogLevel debug" and re-start cupsd.

This is what fixed it for me... adding "set -x" in pdfdistiller and "LogLevel debug" into cupsd.conf gave me much better info to dig through in /var/log/cups/error_log.


Here's a chunk of what I found:

D [31/Mar/2003:14:19:22 -0800] StartJob: backend = "/usr/lib/cups/backend/pdf"
D [31/Mar/2003:14:19:22 -0800] StartJob: filterfds[1] = -1, 9
D [31/Mar/2003:14:19:22 -0800] start_process("/usr/lib/cups/backend/pdf", 0xbfffb730, 0xbfffabe0, 10, 9, 7)
I [31/Mar/2003:14:19:22 -0800] Started backend /usr/lib/cups/backend/pdf (PID 4179) for job 155.
E [31/Mar/2003:14:19:22 -0800] PID 4179 stopped with status 22!
D [31/Mar/2003:14:19:22 -0800] [Job 155] /usr/lib/cups/backend/pdf: No such file or directory


It was looking for "/usr/lib/cups/backend/pdf" as the backend instead of "/usr/lib/cups/backend/pdfdistiller", which is what the file was named. I made a copy called "/usr/lib/cups/backend/pdf" and it worked fine. I do not yet know why cups was looking for the file as "pdf" instead of "pdfdistiller", but this was the entirety of the issue.


I dig the simplicity of the solution at
http://printing.kde.org/downloads/
but given that it doesn't seem to work for me, I can hardly recommend it.


You don't need to recommend it -- *I'll* be doing it... ;-)

Ok, now that makes two of us! :)


Thanks Kurt!

-Tom

--
To unsubscribe from this list go to the following URL and read the
instructions:  http://lists.samba.org/mailman/listinfo/samba

Reply via email to