GNU a2ps is an Any to PostScript filter. Of course it processes plain text files, but also pretty prints quite a few popular languages.
More detailed web pages about GNU a2ps, including documentation, flashes, updates, mailing lists, FAQ etc., is available at https://savannah.gnu.org/projects/a2ps/.
a2ps can be found on http://ftp.gnu.org/gnu/a2ps/ or one of the mirrors.
Its slogan is precisely `` Do The Right Thing '', which means that though it is highly configurable, everything was made so that a novice user can do complicated PostScript manipulations. For instance, it has the ability to delegate the processing of some files to other filters (such as groff, texi2dvi, dvips, gzip etc.), what allows a uniform treatment (n-up, page selection, duplex etc.) of heterogeneous files.
As an example:
ubu $ a2ps mill.1.ps.gz a2ps.gif NEWS a2ps.texi index.html -o demo.ps [mill.1.ps.gz (compressed, delegated to Gzip-a2ps): 17 pages on 9 sheets] [a2ps.gif (gif, delegated to ImageMagick): 3 pages on 2 sheets] [NEWS (plain): 12 pages on 6 sheets] [a2ps.texi (texinfo, delegated to texi2dvi): 89 pages on 45 sheets] [index.html (html, delegated to Netscape): 13 pages on 7 sheets] [Total: 132 pages on 66 sheets] saved into the file `demo.ps'
Want to print a LaTeX file in Duplex?
ubu $ a2ps paper.tex -s2 -P margot [paper.tex (tex, delegated to texi2dvi): 33 pages on 9 sheets] request id is margot-129 (standard input) [Total: 34 pages on 9 sheets] sent to the printer `margot'(Bibtex, makeindex, and latex were run as many times as needed.)
Or maybe you want to print the documentation as a booklet?
ubu ~/src/a2ps-4.10 $ a2ps -P margot -=book doc/a2ps.texi [doc/a2ps.texi (texinfo, delegated to texi2dvi): 109 pages on 109 sheets] request id is margot-128 (standard input) [Total: 109 pages on 109 sheets] sent to the printer `margot'It supports a wide number of encodings, and a very good handling of Latin 2-6 should be noted, thanks to Ogonkify (by Juliusz Chroboczek). Needed fonts are automatically downloaded. The interface is internationalized, the output is customizable and there are as many options as users had wishes (table of content, headings, virtual page layout etc. etc.).
The documentation has been carefully crafted for both novices and experts. It is meant to bring light on most questions you have, and includes a glossary.
Some goodies are provided with GNU a2ps:
The full distribution of Ogonkify, by Juliusz Chroboczek, is also included in the package. Ogonkify lets you fix deficient Latin 2-6 support in popular applications' PostScript (Netscape, StarOffice...).
Please send FSF & GNU inquiries & questions to firstname.lastname@example.org. There are also other ways to contact the FSF.
Please send comments on these web pages to email@example.com, send other questions to firstname.lastname@example.org.
Copyright (C) 1999 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
Updated: $Date: 2016/09/22 20:17:17 $ $Author: cloos $