from __future__ import print_function # WildcardTextToPDF.py # Convert the text files specified by a filename wildcard, # like '*.txt' or 'foo*bar*baz.txt', to PDF files. # Each text file's content goes to a separate PDF file, with the # PDF file name being the full text file name (including the # '.txt' part), with '.pdf' appended. # 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 glob from PDFWriter import PDFWriter def usage(argv): sys.stderr.write("Usage: python {} txt_filename_pattern\n".format(argv[0])) sys.stderr.write("E.g. python {} foo*.txt\n".format(argv[0])) def text_to_pdf(txt_filename): pw = PDFWriter(txt_filename + '.pdf') pw.setFont('Courier', 12) pw.setHeader('{} converted to PDF'.format(txt_filename)) pw.setFooter('PDF conversion by xtopdf: https://google.com/search?q=xtopdf') with open(txt_filename) as txt_fil: for line in txt_fil: pw.writeLine(line.strip('\n')) pw.savePage() def main(): if len(sys.argv) != 2: usage(sys.argv) sys.exit(0) try: for filename in glob.glob(sys.argv[1]): print("Converting {} to {}".format(filename, filename + '.pdf')) text_to_pdf(filename) except Exception as e: print("Caught Exception: type: {}, message: {}".format(\ e.__class__, str(e))) if __name__ == '__main__': main()