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.2.tar.gz (109.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.3.2-py3-none-any.whl (127.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for turbopdf-1.3.2.tar.gz
Algorithm Hash digest
SHA256 4fb55a94ad4b928aac83f059a04a7ec9a7d1c443bce415816c571fe9f8711edb
MD5 4d9539bd337dad8c2389912b212d32c7
BLAKE2b-256 3f6455f4eb0043d38bba39e5e96486c4cfa040448d8404a2ad2699b9904e3b85

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for turbopdf-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e41501eaf5e3da255fc3d8080ebc588360a7bce1063a0e9228f64d07370735f1
MD5 1c129827503f83f9c5e930375e85f75e
BLAKE2b-256 7e85682c5b6310233fc370f64a0e818230d65271700999b153dc6054be2aff87

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