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.2.6.tar.gz (108.4 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.2.6-py3-none-any.whl (122.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for turbopdf-1.2.6.tar.gz
Algorithm Hash digest
SHA256 6904d1f827b9caa11c04a6cb2f185a6e34b386b0999a0e4207b32dc5405f5686
MD5 a5bf1ffcaad156481ba2119a9b6757d0
BLAKE2b-256 7470ddc9870c4acc1eede717e4693fdd9bc63d99c27ce387d37e213ec778d8e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: turbopdf-1.2.6-py3-none-any.whl
  • Upload date:
  • Size: 122.6 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.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 8ff3c02d34914dfd61d5ea63e4c5506f4643007fe3f75c1f0d158b9f10112976
MD5 0317c4b427edb666133018e680fa89e2
BLAKE2b-256 6ea69f83250ec4f6c4a41ad5f49a5abbffad259a1749fe706dc0cc94c6a838bc

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