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.0.tar.gz (214.5 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.0-py3-none-any.whl (239.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: assemblerpdf-1.0.0.tar.gz
  • Upload date:
  • Size: 214.5 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.0.tar.gz
Algorithm Hash digest
SHA256 5f5627635f64d13e24820e66a4077093c759805811d9ca4497398895ffaf3ede
MD5 3b61902e466b43213cbbb7cd3b2f5d15
BLAKE2b-256 89fa3bb6cd64dcff87e7064ec0305f38fc794c423f99b90225d23562d1363918

See more details on using hashes here.

File details

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

File metadata

  • Download URL: assemblerpdf-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 239.0 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 89f9e007ea432e08194b3a903db9259d15b4be1b8353ce845cbe56f5659d3847
MD5 5da54372066ad5219e64178acc7e604f
BLAKE2b-256 489ec7bf41c03a807b73de0807a06f0dd2b9ff5a058913f0a1b11c4131e3c7c9

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