Skip to main content

Generador de PDFs simples y rápidos para Python, ideal para entornos educativos y gubernamentales.

Project description

🚀 TurboPDF — Generador de PDFs Profesionales y Modulares para Django

PyPI version Python versions License: MIT GitHub stars

Crea formularios oficiales, informes y documentos institucionales en minutos — con componentes HTML reutilizables y una estructura base profesional.

TurboPDF te permite ensamblar PDFs complejos (como formularios de la UNP) usando componentes modulares (fila_dos.html, firma.html, etc.) y una estructura base reutilizable que incluye:

  • Logos institucionales
  • Márgenes y estilos oficiales
  • Paginación automática
  • Bloque "Archívese en:"

Ideal para entornos gubernamentales, educativos o empresariales que requieren documentos estandarizados.


🎯 ¿Por qué TurboPDF?

Modular — Reutiliza componentes HTML en múltiples formularios
Flexible — Construye cualquier formulario directamente desde tu vista
Profesional — Estilos y estructura listos para documentos oficiales
Django-Friendly — Integración directa con tus vistas y modelos
Mantenible — La lógica del formulario vive en tu proyecto, no en la librería


⚡ Instalación

pip install turbopdf

📌 Requisitos:


Python ≥ 3.8 Django ≥ 3.2 wkhtmltopdf instalado en el sistema (guía de instalación )


🧩 Componentes incluidos

TurboPDF incluye componentes HTML listos para usar:

titulo_logo.html — Encabezado con logos y títulos fila_dos.html, fila_tres.html, fila_cuatro.html — Filas de datos tipo_identificacion.html — Selector de tipo de documento firma.html, firmaop2.html — Firmas del solicitante oficializacion.html — Pie de página con código y paginación archivese.html — Bloque "Archívese en:" pregunta_si_no.html, tipos_checkbox.html — Controles de selección texarea.html — Áreas de texto grandes anexos_limpio.html, manifiesto.html, leyenda_autoriza_correo.html — Componentes legales



🛠️ Cómo usar TurboPDF

Ejemplo 1: Formulario básico con encabezado y firma from django.http import HttpResponse from turbopdf.assemblers import BaseFormAssembler

    context = {'nombreCompleto': 'Ana López'}
    
    assembler = BaseFormAssembler(context)
    assembler.add_raw_html('<div style="border:1px solid #303d50; padding:20px;">')
    assembler.add_component('titulo_logo.html', {
        'titulo1': "MI FORMULARIO OFICIAL",
        'titulo2': "SUBTÍTULO",
        'titulo3': "INSTITUCIÓN"
    })
    assembler.add_component('firmaop2.html', {'nombre_completo': context['nombreCompleto']})
    assembler.add_raw_html('</div>')
    assembler.add_component('archivese.html', {})
    assembler.add_component('oficializacion.html', {
        'codigo': "MIF-FT-01",
        'fecha': "Oficialización: 01/01/2025",
        'pagina': "Pág. 1 de 1"
    })

    response = HttpResponse(assembler.build(), content_type='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="documento.pdf"'
    return response

Ejemplo 2: Fila de datos + selección

assembler.add_component('fila_dos.html', {
    'label1': "Nombre", 'valor1': "Juan Pérez",
    'label2': "Correo", 'valor2': "juan@example.com"
})

assembler.add_component('pregunta_si_no.html', {
    'pregunta': "¿Autoriza notificaciones por correo?",
    'valor': "Sí"
})

Ejemplo 3: Tipo de identificación

assembler.add_component('tipo_identificacion.html', {
    'numeracion1': 1,
    'numeracion2': "2. Número de identificación *",
    'numeroIdentificacion': "123456789",
    'numeracion3': "3. Fecha de expedición *",
    'fechaExpedicion': "01/01/2020",
    'tipoIdentificacion': "Cédula de ciudadanía"
})

📜 Licencia

UNP - EcosistemaUNP ©


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

turbopdf-1.4.2.tar.gz (283.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

turbopdf-1.4.2-py3-none-any.whl (301.3 kB view details)

Uploaded Python 3

File details

Details for the file turbopdf-1.4.2.tar.gz.

File metadata

  • Download URL: turbopdf-1.4.2.tar.gz
  • Upload date:
  • Size: 283.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for turbopdf-1.4.2.tar.gz
Algorithm Hash digest
SHA256 ba2f74b752e8de8c284f4db4fdc8e5a9f1cc2143a514f3c1d866c862a4bcd2c4
MD5 4a42560fe5ecf29f91ddc70c77a778af
BLAKE2b-256 17ea595121cd0024a7292a0b69c56cdaa41fcc4033315f1f125780549d5badc9

See more details on using hashes here.

File details

Details for the file turbopdf-1.4.2-py3-none-any.whl.

File metadata

  • Download URL: turbopdf-1.4.2-py3-none-any.whl
  • Upload date:
  • Size: 301.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for turbopdf-1.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f2b3a7908f8e340976b361392c0220862bfc77782f0554ead1f7e5652dc30c8b
MD5 1963a5753d522208b0b0e29e07ac59c8
BLAKE2b-256 556476a96a50d112926daf8764dba3670891fade1b4d99191a3d2e8ea9e259b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page