Biblioteca PDF simple para Python / Django

Estoy buscando una biblioteca para crear archivos PDF en Python. Preferiblemente algo simple de usar ya que no sé mucho sobre el formato PDF en este momento (por lo que sería conveniente un convertidor de HTML a PDF).

Quiero crear una factura desde nuestro sistema de reservas. El resto del sistema está construido en Django. La salida no es especialmente compleja.

¿Crear archivos PDF a partir de qué? ¿Hay documentos de entrada y en qué formato están? ¿Está bien si solo se acepta la entrada HTML?
Eso debería significar que la entrada HTML estaría bien, ya que la generaría usted mismo de todos modos, ¿verdad?
Sí, HTML estaría bien, ya que sé cómo crear un documento de esa manera.

Respuestas (4)

Probablemente, el conjunto de herramientas generador de PDF más conocido, escrito en Python, es ReportLab , que tiene una versión de código abierto, así como una versión con licencia más sofisticada. Me resultó difícil modificar, como neófito, para hacer exactamente lo que quería.

Algo más básico y simple de entender es pyfpdf , que es de código abierto pero existe la posibilidad de soporte pago. Es una versión Python de la popular biblioteca php fpdf.

Ambos son multiplataforma.

Puede generar sus archivos PDF usando LaTeX. Existe la biblioteca PyLaTeX python, que es una interfaz para LaTeX en python. Este ejemplo cubre la mayoría de los conceptos básicos.

¿Ha notado que la documentación oficial de Django tiene un "Cómo hacer" sobre "Generar archivos PDF con Django" ? La información clave es cómo escribir vistas de Django que generen dinámicamente documentos PDF. Es una forma muy concisa de obtener los primeros resultados.

Una desventaja de reportlab es que debe saber mucho sobre archivos PDF. Es por eso que me gustaría recomendar soluciones en las que las plantillas web, creadas con HTML y CSS, se rendericen en PDF. Este enfoque debería encajar más en las cabezas de los desarrolladores web hoy en día. Pero las herramientas también son importantes y la forma de reportlab está bien explorada y documentada. Al menos estos son mis dos centavos.

La mejor manera de hacerlo que encontré es pdfkit . También necesita instalar wkhtmltopdf porque pdfkites un contenedor para él. Detrás de escena convierte un html a PDF. Esto es muy bueno para facilitar el formateo.

Puede ajustar los márgenes y el tamaño del papel. Lo usé en Ubuntu/linux y Windows también. ¡¡Lo recomiendo!!