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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

assemblerpdf-1.0.3-py3-none-any.whl (241.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: assemblerpdf-1.0.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 83b628fd2a01e4388f928911dee1dc49c6e64fc62d3dbad6c3bc33bb1b91ea0b
MD5 a3f840ab85110486516dcf254ea94315
BLAKE2b-256 f7470202d7685704eb4caa6d956c8763d52a93a725419733b81e44619661df66

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