"PrettyTable to PDF is pretty easy with xtopdf."
How's that for some alliteration? :)
PrettyTable is a Python library to help you generate nice tables with ASCII characters as the borders, plus alignment of text within columns, headings, padding, etc.
Excerpt from the site:
[ PrettyTable is a simple Python library designed to make it quick and easy to represent tabular data in visually appealing ASCII tables.
PrettyTable lets you control many aspects of the table, like the width of the column padding, the alignment of text within columns, which characters are used to draw the table border, whether you even want a border, and much more. You can control which subsets of the columns and rows are printed, and you can sort the rows by the value of a particular column.
PrettyTable can also generate HTML code with the data in a <table> structure. ]
I came across PrettyTable via this blog post:
11 Python Libraries You Might Not Know.
Then I thought of using it with my PDF creation toolkit, to generate such ASCII tables, but as PDF. Here's a program, PrettyTableToPDF.py, that shows how to do that:
""" PrettyTableToPDF.py A demo program to show how to convert the output generated by the PrettyTable library, to PDF, using the xtopdf toolkit for PDF creation from other formats. Author: Vasudev Ram - http://www.dancingbison.com xtopdf is at: http://slides.com/vasudevram/xtopdf Copyright 2015 Vasudev Ram """ from prettytable import PrettyTable from PDFWriter import PDFWriter pt = PrettyTable(["City name", "Area", "Population", "Annual Rainfall"]) pt.align["City name"] = "l" # Left align city names pt.padding_width = 1 # One space between column edges and contents (default) pt.add_row(["Adelaide",1295, 1158259, 600.5]) pt.add_row(["Brisbane",5905, 1857594, 1146.4]) pt.add_row(["Darwin", 112, 120900, 1714.7]) pt.add_row(["Hobart", 1357, 205556, 619.5]) pt.add_row(["Sydney", 2058, 4336374, 1214.8]) pt.add_row(["Melbourne", 1566, 3806092, 646.9]) pt.add_row(["Perth", 5386, 1554769, 869.4]) lines = pt.get_string() pw = PDFWriter('Australia-Rainfall.pdf') pw.setFont('Courier', 12) pw.setHeader('Demo of PrettyTable to PDF') pw.setFooter('Demo of PrettyTable to PDF') for line in lines.split('\n'): pw.writeLine(line) pw.close()
You can run the program with:
$ python PrettyTableToPDF.pyAnd here is a screenshot of the output PDF in Foxit PDF Reader:
--- Posts about Python --- Posts about xtopdf ---
- Vasudev Ram - Dancing Bison Enterprises - Python programming and trainingSignup to be informed about my new products or services.Contact Page