30 puntos por GN⁺ 2025-10-14 | 2 comentarios | Compartir por WhatsApp
  • Herramienta CLI de código abierto para manipular archivos PDF, creada por el equipo de py-pdf y basada en Python
  • Ofrece diversas funciones de edición de PDF como mostrar metadatos, extraer y fusionar páginas, eliminar páginas, convertir imágenes a PDF, comprimir documentos y crear booklets
  • También admite funciones especializadas como extraer imágenes y texto anotado de PDFs o recuperar el xref de PDFs dañados por edición manual
  • En la recién lanzada versión 0.5.0 se agregaron nuevas funciones como firmar y verificar documentos PDF, extraer solo las páginas con anotaciones y rotar páginas específicas

Herramienta CLI de código abierto para PDF: pdfly

  • pdfly es el proyecto más reciente de la organización py-pdf, una herramienta de línea de comandos para manipular archivos PDF que funciona en entornos Python
  • Está desarrollada sobre las bibliotecas fpdf2 y pypdf, y su instalación y uso son sencillos, por lo que puede aprovecharse en distintas plataformas
  • La mayor fortaleza de pdfly es su amplio soporte de funciones frente a otras alternativas de código abierto, junto con una interfaz intuitiva que incluso desarrolladores principiantes pueden usar fácilmente
  • En comparación con otros proyectos, permite realizar con facilidad la mayoría de las tareas relacionadas con PDF desde una sola herramienta, lo que le da una gran eficiencia

Funciones principales

  • Visualización de metadatos

    • Soporta la visualización de metadatos de PDF mediante los comandos pdfly meta y pdfly pagemeta
    • Proporciona datos del sistema operativo como nombre de archivo, permisos, tamaño y fechas de creación/modificación/acceso
    • Muestra datos internos del PDF como versión del PDF, cantidad de páginas, si está cifrado, información de fuentes, archivos adjuntos y número de imágenes
  • Combinación y edición de documentos

    • pdfly cat: función para extraer páginas específicas y fusionar documentos
    • pdfly rm: función de eliminación selectiva de páginas
    • pdfly x2pdf: convierte imágenes en documentos PDF
    • pdfly compress: función de compresión de documentos
    • pdfly 2-up y pdfly booklet: función para crear booklets
  • Extracción de contenido

    • pdfly extract-images: extrae imágenes de un PDF
    • pdfly extract-annotated-text: extrae texto anotado
  • Recuperación de PDF

    • pdfly update-offsets: corrige la tabla xref de PDFs editados manualmente con un editor de texto para poder volver a abrirlos
    • La tabla xref es un índice de offsets de bytes dentro del documento y puede dañarse durante la edición manual

Lanzamiento de la versión 0.5.0 y nuevas funciones

  • Lanzamiento de pdfly 0.5.0 el 13 de octubre de 2025
  • pdfly sign: permite agregar firmas electrónicas a documentos PDF de forma sencilla
  • pdfly check-sign: función de verificación de firmas en documentos PDF
  • pdfly extract-annotated-pages: extrae selectivamente solo las páginas con anotaciones, lo que ayuda en revisiones repetitivas y retrabajo en documentos grandes
  • pdfly rotate: función para rotar páginas específicas del documento

Planes a futuro

  • En los issues up-for-grabs de GitHub hay preparadas diversas ideas de funciones
  • También hay issues con la etiqueta good first issues para nuevos contribuidores, lo que busca fomentar la participación de quienes se inician en el código abierto
  • Planean centrarse en ampliar las funciones relacionadas con firma electrónica como pdfly sign y check-sign
  • Se reciben con entusiasmo comentarios de usuarios, reportes de errores y propuestas de funciones

https://github.com/py-pdf/pdfly

2 comentarios

 
ifmkl 2025-10-14

Después de usar Modooui PDF, hice y estoy usando una herramienta de PDF que solo soporta algunas funciones (extraer, combinar, eliminar, rotar y reordenar) para que me fuera más cómodo usarla personalmente. La hice para el navegador usando pdf.js /pdf-lib.js. Antes de crear mi propia herramienta también busqué, y vi que hay una cantidad enorme de herramientas y sitios relacionados con PDF.

 
GN⁺ 2025-10-14
Comentarios de Hacker News
  • Aunque es un comentario de hace 10 años, sigo pensando que sigue siendo válido. Tan solo en bibliotecas de Python hay muchísimas que ofrecen funciones relacionadas con PDF con bastante solapamiento. En otros lenguajes pasa lo mismo: hay innumerables bibliotecas. Al final, cada una termina siendo un paquete de varias funciones que transforman estructuras de datos parecidas. Por eso, para hacer trabajos complejos con PDF, terminas teniendo que combinar dos o tres bibliotecas, y eso es ineficiente tanto desde el punto de vista del desarrollador como del uso de recursos de cómputo. Si alguien hiciera en Rust unas estructuras de lectura/escritura de PDF de bajo nivel, bien diseñadas y en memoria, creo que todo el ecosistema mejoraría muchísimo. Cualquier lenguaje o biblioteca PDF podría aprovechar esas estructuras, y adoptarlas probablemente reduciría código y mejoraría velocidad y seguridad. Y si además solo expusieran get_structure_pointer() y set_structure_pointer(), las bibliotecas también podrían interoperar libremente entre sí. Con una estructura así, las bibliotecas pequeñas podrían añadir funciones fácilmente y adoptarse rápido. No sé quién estaría dispuesto a hacer algo así en la práctica, pero de verdad creo que hace falta

    • Al crear una biblioteca PDF, hay trade-offs de diseño constantes según el caso de uso. Incluso "en memoria" ya es una decisión grande, porque el formato PDF en sí está diseñado para que no sea necesario cargar todo el PDF completo en memoria. Y desde la postura de quien prefiere módulos profundos con interfaces mínimas, nunca se verá como respuesta correcta crear módulos superficiales con funciones muy amplias. Por último, también hay que considerar que en entornos administrados como la JVM, una biblioteca hecha con interfaz en C agrega complejidad y overhead adicionales. Enlace relacionado

    • Estoy de acuerdo con la idea de que "si alguien hiciera una buena estructura PDF en memoria en Rust, revolucionaría el ecosistema". Pero ya de por sí hacer una biblioteca mucho mejor que todas las que existen hoy no es nada fácil, y seguir actualizándola, corrigiendo bugs y manteniéndola es todavía más difícil. Incluso si hubiera suficiente financiamiento, habría que encontrar cada año a alguien que siguiera haciéndolo con pasión, y si esa persona pierde el interés, entonces habría que conseguir un nuevo responsable; y entre tanto, inevitablemente también habría que aguantar quejas. En resumen, quiero agradecer de antemano al voluntario que vaya a crear y mantener esto toda su vida

    • Al ver la conversación sobre "sería genial tener una excelente estructura PDF en memoria hecha en Rust", comparto el proyecto open source que sí existe: lopdf

    • Justo ahora estaba depurando un problema de parsing de PDF y al final terminé escribiendo mi propio parser. Intenté entender uno existente, pero el código estaba tan mal armado que terminé implementándolo yo mismo. El formato PDF, sinceramente, se ha vuelto bastante complejo por la mezcla de parches improvisados y exceso de funciones añadidas durante su evolución. La idea en sí es buena, pero en PDF existen demasiados tipos de objetos y propiedades especiales, así que cada vez que intentas hacer bindings de esto, la complejidad de FFI termina repitiéndose. Casi sería mejor hacer un mapeo oficial entre PDF y JSON para que, si la memoria no fuera problema, las bibliotecas principales pudieran intercambiar datos de esa manera. Después de todo, el modelo de objetos no es completamente distinto

    • Bromean con que toda esta discusión podría resumirse con una sola viñeta de XKCD, y comparten el enlace

  • Poppler no lo detalla mucho en su sitio oficial, pero en realidad es una biblioteca que incluye varias utilidades y también se puede usar fácilmente en distribuciones Linux. Es una herramienta que he usado bien muchas veces. Enlace relacionado en Wikipedia

    • Usé estas herramientas para analizar cientos de miles de recibos de nómina en PDF y subir los datos a un nuevo sistema financiero. Le pondría 10 de 10 sin dudar

    • Yo también uso seguido las herramientas de poppler. De verdad me parecen excelentes

  • Para trabajo de bajo nivel, qpdf es bastante útil

    • Yo también venía a mencionar eso. Qpdf es lo que más uso desde la línea de comandos para trabajar con archivos PDF. Sirve para cifrar, descifrar, extraer páginas, combinar y más. Tiene licencia Apache y está escrito en C++
  • También está pdfcpu.io. Aun así, si solo necesitas cambios simples en un PDF, es muy difícil encontrar una app GUI open source y multiplataforma. De hecho, yo todavía no encuentro una

    • Me ha ido bien con PDF SAM basic ("split and merge"). Enlace del sitio Es open source, multiplataforma y además tiene funciones extra que solo están en la versión de pago

    • Si puedes hacer self-hosting, Signature PDF también me pareció bastante bueno. Enlace del proyecto

    • Tal vez pdf24 tools te sirva. También permite instalación offline

    • Probé pdfcpu images list, y me sorprendí cuando empezó a descargar alguna fuente desde afuera en mi máquina local. Es octubre, pero me dio demasiado miedo y lo dejé pasar

    • Después de darle muchas vueltas, terminé decidiendo usar una licencia pagada de Creative Cloud. Acrobat simplemente funciona bien, así que ni modo. De verdad quiero una alternativa, pero en la práctica no hay un reemplazo adecuado

  • Quiero recomendar PDFgear. No es algo ultra avanzado, pero para edición de PDF de nivel intermedio, entre las alternativas a Adobe es casi de lo único que realmente sirve, además de que es gratis y está disponible en todo menos Linux

    • Como dicen que soporta todo menos Linux, preguntan en broma dónde están los binarios para OpenVMS, Apple II y DEC Alpha

    • También está Master PDF, y comparten el enlace diciendo que ese sí tiene versión para Linux

    • Aunque se vea bien, cuesta creer la lógica de "es gratis, no tiene anuncios, no vende datos y opera de forma transparente solo con inversión". Incluso citan la explicación del sitio, donde dice que PDFgear se sostiene sin ingresos por anuncios ni por datos, gracias a inversión y optimización tecnológica

    • PDFgear me genera cierta desconfianza. Antes subía cosas a la nube sin que el usuario lo supiera, y parece que la empresa también moderaba su propio subreddit

  • Hoy aprendí que ya existen muchísimas herramientas multifunción para archivos PDF

  • Ojalá de verdad existiera una función que generara automáticamente la tabla de contenido (metadatos). En los PDF de libros viejos eso no está, y navegar se vuelve muy incómodo. Kybook3 tiene una versión de eso, pero no funciona bien. Siento que con la tecnología LLM actual ya debería ser posible

    • Estoy usando pdf.tocgen. No es completamente automático, pero ahorra muchísimo tiempo comparado con hacerlo totalmente a mano
  • Me pregunto si de verdad tiene sentido una utilidad para automatizar firmas en PDF. La esencia de una firma es que una persona leyó y aceptó algo, así que automatizar eso me parece cuestionable

    • Pienso que no hay razón para que una empresa no firme automáticamente los documentos que ella misma genera. La firma aquí no se refiere a una firma visual dentro del PDF, sino a una firma criptográfica con la que cualquiera pueda verificar al emisor. Es decir, una función para que el usuario pueda comprobar que un estado de cuenta bancario realmente vino del banco

    • Un CEO no tiene tiempo para firmar montones de contratos laborales. Incluso en la era analógica había secretarios que se encargaban de estampar sellos, así que automatizar firmas sí tiene sentido en la práctica

    • Cuando se necesita, se pueden emitir automáticamente constancias bancarias firmadas. No esperarías que el gerente de la sucursal se sentara personalmente a firmar cada solicitud una por una

    • Por ejemplo, si tuvieras que firmar 25 PDF, sería mucho más cómodo revisarlos en pantalla y firmarlos en lote, en lugar de hacerlo manualmente uno por uno desde el visor

  • Además de lo mencionado arriba, también está pdfcpu, un "Go PDF processor and CLI". GitHub de pdfcpu

  • Para mí, la herramienta PDF todoterreno era el conjunto de utilidades PDF de Didier Stevens. Enlace del programa