I want to save a pandas dataframe into pdf format.
import pdfkit as pdf
config = pdf.configuration(wkhtmltopdf=\"C:\\Program Files\\wkhtmltopdin\\wkhtmlt
Have you considered drawing a Matplotlib Table, then exporting the Table Figure?
import matplotlib.backends.backend_pdf
import matplotlib.pyplot as plt
import pandas as pd
d = {'x{}'.format(i): range(30) for i in range(10)}
table = pd.DataFrame(d)
fig = plt.figure()
ax=fig.add_subplot(111)
cell_text = []
for row in range(len(table)):
cell_text.append(table.iloc[row])
ax.table(cellText=cell_text, colLabels=table.columns, loc='center')
ax.axis('off')
pdf = matplotlib.backends.backend_pdf.PdfPages("output.pdf")
pdf.savefig(fig)
pdf.close()
I found this was simple, highly customizable and OS-independent (as far as I know). I was able to implement this on a client's server without downloading any additional packages.
One option is to start with:
df.to_html()
and then use QT to convert the HTML to PDF as follows:
from PyQt4.QtGui import QTextDocument, QPrinter, QApplication
import sys
app = QApplication(sys.argv)
doc = QTextDocument()
location = "c://apython//Jim//html//notes.html"
html = open(location).read()
doc.setHtml(html)
printer = QPrinter()
printer.setOutputFileName("foo.pdf")
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setPageSize(QPrinter.A4)
printer.setPageMargins(15, 15, 15, 15, QPrinter.Millimeter)
doc.print_(printer)
print("done!")
I obtained the second bit of code from html to pdf, and tested on Mac OSX with positive results.