Skip to main content

Generador de PDFs usando WeasyPrint, diseñado para formularios y reportes con componentes genéricos.

Project description

🚀 assemblerpdf

Generador de PDFs dinámicos utilizando WeasyPrint con componentes HTML genéricos y reutilizables.

Esta librería permite ensamblar PDFs complejos utilizando un conjunto de componentes reutilizables (grid_row, input, textarea, checkbox, radio, etc.), con soporte para la fuente Inter descargada automáticamente, y con instalador automatizado de dependencias del sistema operativo (Pango, Cairo, etc.).


⚡ Instalación y Configuración

Puedes instalar la librería localmente para desarrollo:

pip install -e .

E instalar las dependencias del sistema (como Cairo/Pango para WeasyPrint) y descargar las fuentes corriendo el siguiente comando en Python:

import assemblerpdf
assemblerpdf.install_dependencies()

🛠️ Uso Básico

from assemblerpdf.assemblers.base import BaseFormAssembler

# Crear contexto de datos
context = {
    "nombreCompleto": "Juan Pérez",
    "fechaDiligenciamiento": "2026-06-03"
}

# Inicializar ensamblador
assembler = BaseFormAssembler(context)

# Agregar componentes genéricos
assembler.add_component("header.html", {
    "titulo1": "FORMULARIO DE PRUEBA",
    "titulo2": "SUBTÍTULO",
    "titulo3": "UNIDAD NACIONAL DE PROTECCIÓN"
})

assembler.add_component("section.html", {
    "titulo": "Datos de Identificación",
    "icono": "fa-user"
})

# Agregar fila de inputs
assembler.add_grid_row([
    {"template": "input.html", "context": {"label": "Nombre Completo", "valor": context["nombreCompleto"], "ancho": "70%"}},
    {"template": "input.html", "context": {"label": "Fecha", "valor": context["fechaDiligenciamiento"], "ancho": "30%"}}
])

# Construir PDF
pdf_bytes = assembler.build()

with open("test.pdf", "wb") as f:
    f.write(pdf_bytes)

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

assemblerpdf-1.0.1.tar.gz (214.8 kB view details)

Uploaded Source

Built Distribution

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

assemblerpdf-1.0.1-py3-none-any.whl (239.3 kB view details)

Uploaded Python 3

File details

Details for the file assemblerpdf-1.0.1.tar.gz.

File metadata

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

File hashes

Hashes for assemblerpdf-1.0.1.tar.gz
Algorithm Hash digest
SHA256 b3848a796fa971cba6010989129d7f5826c5b6515033af8fe4cc68de8bf3af19
MD5 8d21129a15992c2f5af177b7aab04b90
BLAKE2b-256 c4da537909d722bc81fe7fa2cca9b50322ce9a08cb8205b184bdc812c139855f

See more details on using hashes here.

File details

Details for the file assemblerpdf-1.0.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for assemblerpdf-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c8a68d67d51c36dfd905edc43bd0646181de879cce33b67dd242ca425099102e
MD5 60a64d89cde51f01c469f29f5bc5dab5
BLAKE2b-256 1489a51b30d3d2bd3117a06bd0b99ac0d13585e1604072dcbad83ca61b50b41b

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