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.5.0.tar.gz (283.3 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.5.0-py3-none-any.whl (301.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for turbopdf-1.5.0.tar.gz
Algorithm Hash digest
SHA256 bc85d1851d0cf608eadfe6f82b003b6296c5cbe0d80ff34935780d8dd5006f29
MD5 2db19fe4ad9cee90718f8c6aeb514b10
BLAKE2b-256 2321f9450821ca7c1610b1bac9114ce28e5a1ce10a1336947c50415ae1f542f6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: turbopdf-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 301.7 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 42804bab5de70112428f4cebfec95cb9c93d247f2c938854c8a3cb368d22291d
MD5 34c0d9e9542c69ae1a828cc2a4cd325a
BLAKE2b-256 92511a011ba846c557cf24a651bfbb5ad60116cda6fe86f43cc0ad03a9880866

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