from __future__ import print_function
# BatchTextToPDF.py
# Convert a batch of text files to a single PDF.
# Each text file's content starts on a new page in the PDF file.
# Requires:
# - xtopdf: https://bitbucket.org/vasudevram/xtopdf
# - ReportLab: https://www.reportlab.com/ftp/reportlab-1.21.1.tar.gz
# Author: Vasudev Ram
# Copyright 2016 Vasudev Ram
# Product store: https://gumroad.com/vasudevram
# Web site: https://vasudevram.github.io
# Blog: http://jugad2.blogspot.com
import sys
import fileinput
from PDFWriter import PDFWriter
def usage(prog_name):
sys.stderr.write("Usage: {} outfile.pdf infile1.txt ...".format(prog_name))
def main():
if len(sys.argv) < 3:
usage(sys.argv[0])
sys.exit(0)
try:
pw = PDFWriter(sys.argv[1])
pw.setFont('Courier', 12)
pw.setFooter('xtopdf: https://google.com/search?q=xtopdf')
for line in fileinput.input(sys.argv[2:]):
if fileinput.filelineno() == 1:
pw.setHeader(fileinput.filename())
if fileinput.lineno() != 1:
pw.savePage()
pw.writeLine(line.strip('\n'))
pw.savePage()
pw.close()
except Exception as e:
print("Caught Exception: type: {}, message: {}".format(\
e.__class__, str(e)))
if __name__ == '__main__':
main()