Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Django, reportes e impresión

Igor Támara
December 04, 2014

Django, reportes e impresión

Algunas herramientas para hacer impresión y generar pdfs desde Django.

Igor Támara

December 04, 2014
Tweet

More Decks by Igor Támara

Other Decks in Programming

Transcript

  1. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Django, reportes e

    impresi´ on Igor T´ amara Diciembre 4 de 2014 Igor T´ amara Django, reportes e impresi´ on
  2. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Printing Time!!!! Table

    of contents 1 Ruta Printing Time!!!! 2 Algunas Opciones Formatos preimpresos Aprovechando capacidades del navegador De html a PDF L A TEX 3 ReportLab Caracter´ ısticas python time RML z3c.rml 4 Otras aproximaciones wkhtmltopdf, xhtml2pdf, relatorio 5 PQR Igor T´ amara Django, reportes e impresi´ on
  3. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX Igor T´ amara Django, reportes e impresi´ on
  4. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX pdfrw from cStringIO import StringIO from pdfrw import PdfReader filein = PdfReader(’/tmp/myfile’) # PDF Base ... canvas.drawString(3800, height - 300, unicode(’Hola Mundo’)) canvas.showPage() canvas.save() pdf = pdf_buffer.getvalue() pdf_buffer.close() # Un pdf con algunos textos encima # Los trucos incluyen contar con reportlab Igor T´ amara Django, reportes e impresi´ on
  5. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX Igor T´ amara Django, reportes e impresi´ on
  6. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX CSS @media print { header nav, footer { display: none; } ... } /* Con su maquetador favorito y media print, no se garantiza margen o encabezados. Ahorra papel y evita talar */ Igor T´ amara Django, reportes e impresi´ on
  7. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX Igor T´ amara Django, reportes e impresi´ on
  8. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX Igor T´ amara Django, reportes e impresi´ on
  9. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX Igor T´ amara Django, reportes e impresi´ on
  10. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX L A TEX .py file .sty file Igor T´ amara Django, reportes e impresi´ on
  11. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX L A TEX .py file .sty file .tex file Python Igor T´ amara Django, reportes e impresi´ on
  12. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX L A TEX .py file .sty file .tex file Python .pdf file L A TEX L A TEX User Igor T´ amara Django, reportes e impresi´ on
  13. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX L A TEX .py file .sty file .tex file Python .pdf file L A TEX L A TEX User Django Igor T´ amara Django, reportes e impresi´ on
  14. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Formatos preimpresos Aprovechando

    capacidades del navegador De html a PDF L ATEX Armando con L A TEX # Se verifica que no se haya creado el archivo, # en tal caso se crea con algo como ... from subprocess import call ret = call(’pdflatex -output-directory={0} {1}’.format( wdirectory, # Directorio destino name, # Nombre del archivo ), shell=True) # Este archivo se sirve con los permisos correspondientes # En nuestro caso creamos nuestra clase con variables, ambientes # y se concatena el texto para generar el .tex Igor T´ amara Django, reportes e impresi´ on
  15. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Caracter´ ısticas python

    time RML z3c.rml Caracter´ ısticas C´ odigos de barras, QR Tablas Oportunidad de definir diferentes templates, portada, internas Numeraci´ on autom´ atica de p´ aginas Sabe a python Bajo nivel Control sobre el tama˜ no del papel Inclusi´ on de im´ agenes Definici´ on de plantillas Hosted solution Open Source Ejemplo en documentaci´ on de Django Igor T´ amara Django, reportes e impresi´ on
  16. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Caracter´ ısticas python

    time RML z3c.rml Puro y duro from reportlab.pdfgen import canvas from reportlab.lib.units import cm from reportlab.lib.units import mm from reportlab.graphics.barcode.qr import QrCodeWidget from reportlab.graphics.shapes import Drawing from reportlab.graphics import renderPDF from reportlab.lib.pagesizes import letter c = canvas.Canvas(’/tmp/hello.pdf’, pagesize=letter) c.drawString(9*cm, 22*cm, ’Hola mundo’) # QR :) , so welcome qrw = QrCodeWidget(’http://osm.org’, barWidth=32 * mm, barHeight=32 * mm) qr_code = Drawing(31 * mm, 31 * mm) qr_code.add(qrw) renderPDF.draw(qr_code, c, 9*cm, 25*cm) c.showPage() c.save() Igor T´ amara Django, reportes e impresi´ on
  17. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Caracter´ ısticas python

    time RML z3c.rml Igor T´ amara Django, reportes e impresi´ on
  18. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Caracter´ ısticas python

    time RML z3c.rml Hola mundo en RML <!DOCTYPE document SYSTEM "rml.dtd"> <document filename="example_1.pdf"> <stylesheet> </stylesheet> <pageDrawing> <drawCentredString x="4.1in" y="5.8in"> Hola mundo </drawCentredString> <barCode code="QR" x="4.1in" y="10.6in" >http://osm.org</barCode> </pageDrawing> </document> Igor T´ amara Django, reportes e impresi´ on
  19. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Caracter´ ısticas python

    time RML z3c.rml RML rocks £100 mensuales por uso v´ ıa reportlab Buenos ejemplos Flowables Plantillas Template / Stylesheet / Story Tablas Im´ agenes Gr´ aficas 5X en productividad frente a Reportlab Igor T´ amara Django, reportes e impresi´ on
  20. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Caracter´ ısticas python

    time RML z3c.rml Usando z3c.rml from z3c.rml import rml2pdf ... class PdfCertificateView(View): the_doc = render_to_string(’layout/base_certificate_pdf.rml’, {...}) pdf_doc = rml2pdf.parseString(the_doc) pdf_doc.seek(0) response = HttpResponse(content_type=’application/pdf’) response[’Content-Disposition’] = u’attachment; filename=mi_cert.pdf’ response.write(pdf_doc.read()) return response Igor T´ amara Django, reportes e impresi´ on
  21. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR wkhtmltopdf, xhtml2pdf, relatorio

    wkhtmltopdf No se escribe nada espec´ ıfico para impresi´ on Heredado de pr´ acticas desde otros lenguajes populares Paquete de pypi wrapper para Django Lo usa la wikipedia soporte para flash xhtml2pdf Estilizable v´ ıa CSS constru´ ıdo sobre reportlab relatorio Hacer el template en .odt Hacer los reemplazos con relatorio Exportar a PDF En pypi Igor T´ amara Django, reportes e impresi´ on
  22. Ruta Algunas Opciones ReportLab Otras aproximaciones PQR Ack Ni˜ na

    de Pasto Diario ADN Steven Taylor https://flic.kr/p/ckQP Natalia Vivas https://flic.kr/p/2anQ8p notinthedoghouse http://bit.ly/1vMiSCd Tex Lion fiee.net radloff https://flic.kr/p/8qFX95 Leonardo Dell’Aquila https://flic.kr/p/5pA8Go Russ Seidel https://flic.kr/p/jPMWi8 Axiacore [email protected] CC Share Alike, do what you want with this No warranties Igor T´ amara Django, reportes e impresi´ on