Documentación de PDFLang — Español

Guía completa del lenguaje .pdfl y de la herramienta de línea de comandos pdfl — versión 0.6.0.

Todos los ejemplos de esta documentación son código ejecutable y comentado. Si nunca has usado el lenguaje, empieza por el manual (capítulo 1) y consulta el resto como referencia cuando lo necesites.

El idioma de la herramienta. Los mensajes de pdfl —diagnósticos, errores, ayuda de la línea de comandos y etiquetas de los informes— están en inglés, como es habitual en las herramientas de línea de comandos. Esta documentación está en español, pero un check que falla informa algo como page 7: 324% ink (limit 300%). Los mensajes que escribes tú en tus scripts salen en el idioma en que los escribas.

Índice

Capítulo Contenido
1. El lenguaje Manual completo: checks, aserciones, tipos, unidades, bloques, funciones, imports, reglas
2. Tipos del documento doc, page, font, image, region — todas las propiedades y métodos
3. text:: Texto: extracción, normalización, búsqueda, validaciones brasileñas, datos personales
4. struct:: Estructura y metadatos: objetos, XMP, seguridad, huellas
5. visual:: Imágenes: resolución, comparación visual, pHash, SSIM, calidad
6. prepress:: Preimpresión: TAC, separaciones, tintas planas, fuentes, cajas
7. codes:: Códigos de barras y QR: detección, decodificación, validación
8. fix:: Normalización: cajas, páginas, marcas de agua, unión/división, optimización
9. data:: Datos externos: glosarios, conjuntos de datos y tablas de consulta
10. Biblioteca estándar Métodos de listas y cadenas, funciones globales
11. Comandos del CLI run, compare, watch, fix, inspect, lint, fmt, doc, pack, add
12. Recetas Casos completos: imprenta, editorial jurídica, laboratorio, CI/CD

Empezando en 30 segundos

Crea mi_perfil.pdfl:

// Todo script es una lista de checks. Cada check agrupa validaciones
// relacionadas y se convierte en una sección del informe.
check "Estructura básica" {
  // require: falla con un mensaje generado a partir de la propia expresión
  require doc.page_count > 0

  // assert: falla con el mensaje que tú escribes
  assert doc.title != "", "PDF sin título en los metadatos"
}

Ejecuta:

pdfl run mi_perfil.pdfl documento.pdf

El informe sale en JSON por la salida estándar. El código de salida dice qué ocurrió: 0 todo pasó, 1 solo advertencias, 2 errores de validación, 3 error de sintaxis.

Convenciones de esta documentación

  • Cada función aparece con su firma, qué hace, qué devuelve y un ejemplo comentado.
  • Los argumentos entre corchetes son opcionales: calculate_tac([pagina]).
  • «1-based» significa que la primera página es 1, no 0: el lenguaje cuenta las páginas como las cuentan las personas, no como las cuentan los programadores.
  • Las medidas siempre están en puntos (1 pt = 1/72 pulg). Usa literales de unidad (3mm, 1in) y la conversión es automática.

Otros idiomas: English · Português (Brasil) · 日本語 · 中文 · Français · العربية · Deutsch