Prn2pdf reads an input file containing the stream which was destinated to the printer and renders this text into a pdf file. It also checks for control sequences and executes them. See Printer Control Commands for a description of these formatting sequences.
Thanks to www.reportlab.com for their PDF Toolkit.
Refering articles:
- prnprint and prn2pdf now produce similar output (feature 06.02.07) — The problem in Win32TextPrinter.insertImage() inserts at wrong position (19.01.07) was not only the actual image insertion, but also that a same source file produced quite different results with Win32TextPrinter compared to PdfTextPrinter. Now it is getting better. more
- TextPrinter.newline() uses wrong leading (Problem reports 21.12.06) — prn2pdf and prnprint have a bug: newline() uses the wrong leading when the font size has changed since the last write(), but no actual text has been written using the new font size. It uses the leading of the old font size instead.
- sizes of fonts and images (Problem reports 23.10.06) — Another problem reported in prn2pdf renders box characters (21.10.06) was the fact that prn2pdf doesn't correctly size the image in 5.prn. more
- Moved to Reportlab 2.0 (surf notes 21.10.06) — I upgraded the ReportLab Toolkit on my machine to 2.0. The only code change was to to remove the .encode() calls in PdfTextPrinter.write() since ReportLab now supports Unicode. more
- text2pdf versus prn2pdf (31.12.05) — In 2003, Anand Pillai posted a recipe of the ASPN cookbook where he published PyText2Pdf.py, a Python implementation of text2pdf. Lino's prn2pdf.py does something similar in another way. more
- Recovering from api changes (31.05.05) — Adapted pds2pdf.py, prn2pdf.py and prnprint.py to the api changes of last weeks.
- prn2pdf failed on landscape documents (code changes 29.03.05) — prn2pdf.py failed when landscape mode was requested. It forgot to rotate the first page, remainaing pages were okay.
- prn2pdf now uses sys.stdin.encoding (code changes 25.03.05) — prn2pdf.py assumed a hard-coded value "cp850" for encoding of the input file. Now it uses sys.stdin.encoding. So in a Windows cmd box the input file is supposed to use the same codepage as the command box itself.