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

Uploaded Python 3

File details

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

File metadata

  • Download URL: assemblerpdf-1.0.2.tar.gz
  • Upload date:
  • Size: 216.1 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.2.tar.gz
Algorithm Hash digest
SHA256 c627788e7f005d1f4b7f718c6d55aebc6a7b0a4e91a9dec030fc477b76ce7a39
MD5 e84a2488ab6e65966484a4438509ca33
BLAKE2b-256 821dae690124733c2a8c704fe63e6b5d27411465f57067fe5eb2f7787f3f2756

See more details on using hashes here.

File details

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

File metadata

  • Download URL: assemblerpdf-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 241.2 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4ce4432bc1983f6b62f55d715c2fccf826d1e4f769a9cbbdf76b61c505246d68
MD5 93856d8a5589ba5390f8d3213e759dc7
BLAKE2b-256 757b802d01bf93c722642ec9ec798f42c1126a9e6fab5a39372be95a982a0644

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