Files
fn_registry/python/functions/infra/pdf_from_markdown.md
T
egutierrez 0819c35bbb feat: issue/0020 — generacion de PDFs en Python y Go
Añade 3 tipos Python (PDFDoc, PDFPage, PDFStyle) y 10 funciones Python
para construir PDFs con fpdf2 (builder fluent), fusionar PDFs con pypdf
y convertir HTML/Markdown a PDF via weasyprint (stub si no disponible).
Añade pdf_simple_report en Go como stub hasta que go-pdf/fpdf se integre.

- python/types/infra/: pdf_doc, pdf_page, pdf_style
- python/functions/infra/: pdf_create, pdf_add_page, pdf_add_text,
  pdf_add_table, pdf_add_image, pdf_add_header_footer, pdf_from_html,
  pdf_from_markdown, pdf_merge, pdf_save
- functions/infra/pdf_simple_report.go: stub Go con ReportSection/ReportTable
- 17 tests Python pasando (pytest)
- fpdf2 y pypdf añadidos via uv al venv Python

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 02:02:51 +02:00

1.9 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
pdf_from_markdown function py infra 1.0.0 impure def pdf_from_markdown(markdown_string, output_path, css, page_size) -> str Convierte un string Markdown a PDF via HTML + weasyprint. Incluye CSS por defecto para tipografia legible. Soporta tablas, codigo y headers. Requiere weasyprint y markdown instalados.
pdf
markdown
conversion
weasyprint
infra
pdf_from_html_py_infra
false error_go_core
weasyprint
markdown
name desc
markdown_string contenido Markdown como string; soporta tablas GFM, codigo cercado y listas
name desc
output_path ruta del archivo PDF a generar
name desc
css CSS adicional a añadir sobre los estilos por defecto (tipografia, tablas, codigo)
name desc
page_size tamaño de pagina: A4, letter. Por defecto A4
output_path con el PDF generado en disco false
python/functions/infra/pdf_from_markdown.py

Ejemplo

md_content = """
# Especificacion de la API

## Endpoints

| Metodo | Path | Descripcion |
|--------|------|-------------|
| GET    | /fn  | Lista funciones |
| POST   | /fn  | Crea funcion |

## Notas

Usar `Authorization: Bearer <token>` en todos los requests.
"""

output = pdf_from_markdown(md_content, "api_spec.pdf")

Instalacion

pip install weasyprint markdown

# Linux
sudo apt install libpango-1.0-0 libcairo2 libgdk-pixbuf-2.0-0

Notas

Usa las extensiones tables, fenced_code y nl2br de la libreria markdown. El CSS por defecto incluye estilos para: tipografia base (Helvetica 11pt), headers jerarquicos, bloques de codigo con fondo gris, tablas con bordes y blockquotes. Stub activo: lanza RuntimeError con instrucciones si alguna dependencia falta.