This is a pretty simple one: Printing on Linux sucks. Adobe knows more about printing than anybody. Printing PDFs on Linux with Adobe Reader is wonderful. Conclusion: See title. For further discussion, see below.
Let me just back up my various assertions here. Number one, Printing on Linux sucks. It is easy to see why this is true. KDE has a mediocre print dialog and GNOME has a terrible one, so many applications use their own. Consequently you have umpteen different ways of delivering information to be printed to the printer itself. All of them tend to go through a single print spooler, which in Ubuntu's case (my distribution of choice these days) and in the case of most Linux distributions, is CUPS. CUPS is many huge steps ahead of the old LPR way of doing things (although it will do things that way too, so as not to break backwards compatibility) but given so little support from the vendors they can only do so much.
Number two, Adobe knows more about printing than anybody. I'm talking about the software part here. You may recognize their name as being associated with a little thing called PostScript, which is the de facto standard for communicating with high-end printers. PostScript is a whole programming language intended to describe the contents of a page to be printed, and since Adobe invented PostScript in 1982-84 and it became the language of the Apple LaserWriter in 1985, it's all been uphill for PostScript from there. Even PDF is just a form of PostScript. Adobe also bought Aldus a while back, and so now their software library includes not only Acrobat (the original PDF software) but also InDesign (formerly Aldus Pagemaker,) Photoshop, Illustrator, PrePress, and several other of the industry's best software for producing print media.
Number three, Printing PDFs on Linux with Adobe Reader is wonderful. Let me demonstrate. Here's a GTK print dialog, like from Firefox:
And here's what you get if you load the Printer Properties:
That's it. That's all you get. Now, let me just show you what Adobe Reader 8 has to work with:
Thus, all we ought to need is a way to open Adobe Reader in a special print-mode (perhaps a -print
command line option?) that will automatically bring up the print dialog. Then it will be possible to modify cups-pdf
to optionally launch Adobe Reader in print mode once the PDF has been generated, as well as another option to delete the PDF once Adobe has printed it successfully. Ideally, this would happen only once acroread has terminated successfully (e.g. acroread -print file.pdf && rm file.pdf
) and acroread would only terminate successfully once the print job succeeded. I don't know how easy it is for a program to find out if its print job has succeeded, but that would be easy enough to handle at the script level; if acroread terminates successfully, AND the print job completes successfully, delete the file.
Adobe: please? pretty please?