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.3.9.tar.gz (112.0 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.3.9-py3-none-any.whl (129.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for turbopdf-1.3.9.tar.gz
Algorithm Hash digest
SHA256 42d762c3e0ec4576085a2a4b5c02dfa7405cf37987858530a598175abfe7f220
MD5 a216f91be00cfe61f41fa033b4c0c75f
BLAKE2b-256 af121c8bbbbcc67ec9a6580c9dac455bc4ce8e8b43d00d22c9daf883bfc8f804

See more details on using hashes here.

File details

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

File metadata

  • Download URL: turbopdf-1.3.9-py3-none-any.whl
  • Upload date:
  • Size: 129.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.3.9-py3-none-any.whl
Algorithm Hash digest
SHA256 4235dd8c1c4f311dcb69e566a425d7a150d23962982cd1001194efa730f38383
MD5 638d9f3c97041e7bd21f6669323b037f
BLAKE2b-256 174cf54d2586b0ca9c74e31c2a76d08c1ee8e7c6b5390dc9652e310ff5386d7a

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