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

Django, reportes e impresión

Avatar for Igor Támara Igor Támara
December 04, 2014

Django, reportes e impresión

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

Avatar for Igor Támara

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