2 puntos por GN⁺ 2024-05-04 | 1 comentarios | Compartir por WhatsApp
  • Stirling PDF es una plataforma de edición de PDF de código abierto que permite editar, firmar, redactar, convertir y automatizar PDF sin enviar documentos a servicios externos
  • Es compatible con app de escritorio personal, interfaz de navegador, despliegue en servidor propio y API privada, por lo que puede ejecutarse según el entorno de trabajo
  • Ofrece más de 50 herramientas para PDF, incluidas funciones como combinar, dividir, OCR y compresión, además de pipelines sin código basados en UI y automatización por API
  • Para uso empresarial ofrece SSO, auditoría y despliegue on-premise, y la mayoría de las herramientas cuentan con REST API para integrarse con sistemas existentes
  • El inicio rápido se hace con Docker ejecutando docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf y luego abriendo http://localhost:8080

Lo que ofrece Stirling PDF

  • Stirling PDF es una plataforma de edición de PDF de código abierto que puede ejecutarse como app de escritorio personal, interfaz de navegador o servidor autoalojado
  • En un despliegue en servidor propio se puede usar una API privada, lo que permite procesar tareas de PDF sin enviar documentos a servicios externos
  • Sus tareas principales son edición, firma, redacción, conversión y automatización

Alcance de funciones principales

  • Ofrece más de 50 herramientas PDF
    • edición
    • combinación
    • división
    • firma
    • redacción
    • conversión
    • OCR
    • compresión
  • Soporta automatización y flujos de trabajo
    • Se pueden crear pipelines sin código desde la UI
    • Con la API se pueden procesar millones de PDF
  • También incluye un enfoque de plataforma para desarrolladores
    • Casi todas las herramientas ofrecen REST API
    • Puede integrarse con sistemas existentes
  • La UI está disponible en más de 40 idiomas
  • La lista completa de funciones puede consultarse en Documentation

Despliegue y ejecución

  • Los entornos compatibles son cliente de escritorio, interfaz de navegador y servidor autoalojado
  • El inicio rápido puede hacerse con el siguiente comando de Docker
docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf

Funciones empresariales y operativas

  • Como funciones de nivel empresarial ofrece SSO, auditoría y despliegue on-premise flexible
  • La información sobre Server Plan y Enterprise está en Server Plan & Enterprise

Desarrollo, contribución y soporte

  • Recursos principales
  • Canales de soporte
  • La guía de contribución sigue CONTRIBUTING.md
  • Para compilación, desarrollo y pruebas se usa Task como ejecutor unificado de comandos
    • task dev inicia la ejecución en el editor
    • task muestra los comandos de uso frecuente
    • El contenido completo está en DeveloperGuide.md
  • Para agregar traducciones, consulta devGuide/HowToAddNewLanguage.md
  • La licencia es open-core y los detalles están en LICENSE

1 comentarios

 
GN⁺ 2024-05-04
Comentarios de Hacker News
  • Creo que lo que realmente falta en el ecosistema PDF son herramientas open source relacionadas con firmas.
    Las firmas en PDF son legalmente importantes en muchas regiones del mundo por regulaciones como eIDAS, pero fuera de Adobe o herramientas propietarias sospechosas, es demasiado difícil firmar criptográficamente documentos PDF. Incluso si uno descubre cómo firmar con LibreOffice o poppler, es complicado obtener un certificado verificable sin gastar mucho dinero.
    Si alguien cumpliera un papel tipo Let's Encrypt para certificados PDF y S/MIME, creo que la confianza pública mejoraría muchísimo.

    • Se dice que se necesita un certificado verificable, pero con solo pegar una imagen de la firma en macOS Preview se puede llegar sorprendentemente lejos.
    • Totalmente de acuerdo. Estoy creando algo relacionado en una empresa que, en términos de eIDAS, es una TRA y QTSP.
      Una excelente biblioteca open source que cubre PDF, firmas digitales e incluso firmas de PDF: https://github.com/MatthiasValvekens/pyHanko
      La herramienta DSS de la European Commission también es útil. Solo hay que enviar un PDF; no hace falta incluir tanto el original como el firmado: https://ec.europa.eu/digital-building-blocks/DSS/webapp-demo...
      La empresa es https://www.zealid.com/en/, y en https://my.zealid.com/en se puede hacer onboarding remoto gratis, obtener un certificado calificado, subirlo, firmar con QES y descargar el PDF, todo gratis. También se puede integrar por API.
    • Muy cierto. Le pregunté al responsable interno de IT, que domina Windows Server, cuánto tardaría en implementar una PKI básica para firmar documentos internos, y me miró como si estuviera viendo a alguien con dos cabezas.
    • ¿macOS Preview no cubre este requisito?
  • Lo tengo alojado en casa. No lo uso directamente; uso las herramientas CLI de Linux subyacentes.
    Pero prefiero que mi esposa use esto para convertir o dividir PDFs, en lugar de subirlos a cualquier sitio web o app. Al fin y al cabo, muchos de esos sitios probablemente usan las mismas herramientas de línea de comandos.
    A ella tampoco le importa mucho una opción u otra, y parece encajar bastante bien con su caso de uso.

    • Me da curiosidad la parte de las herramientas CLI de Linux subyacentes. Lo que encontré fue esto: https://pdfbox.apache.org/2.0/commandline.html
      PDFBox es una aplicación Java, así que debería funcionar de forma multiplataforma, no solo en Linux. Si te referías a otra cosa, estaría bueno que lo contaras.
    • Mejor comprar una herramienta PDF con licencia perpetua por 70 dólares. Realmente vale lo que cuesta. Conviene conseguir también la versión exe portable.
  • En el README dice: “Stirling PDF no inicia llamadas externas con fines de registro o seguimiento”, así que supongo que con eso queda resuelto.

    • Soy el creador. Creo que hay algo de confusión en la documentación. No está hecho completamente con ChatGPT.
      Al principio, el año pasado, empezó como un reto de 24 horas para crear toda la app con ChatGPT dentro de un límite de tiempo, para probar qué tal era ChatGPT 3.0.
      Lo publiqué en Reddit, hubo mucha demanda y lo convertí en una app completa; solo durante las primeras 24 horas usé exclusivamente ChatGPT. Ya pasó más de un año desde entonces.
    • Me pregunto qué significa esa frase. ¿La pusieron para que HN la detectara? Me recuerda a cuando cualquier producto o servicio mínimamente relacionado con datos de repente agrega en algún lugar de la landing page “ah, y también hace AI”.
      No es como si uno escribiera en el README “desarrollado con IntelliSense”.
    • Para mí significa dos cosas: no exponerlo a Internet público y no ingresar entradas que no sean confiables.
      Así que, según mi criterio, su utilidad se reduce bastante.
    • Increíble. De verdad vivimos en una época asombrosa.
    • Entonces, ¿se puede confiar en esto?
  • Me gustaría que esta función se integrara en Paperless. A veces un documento escaneado entra al revés y hay que volver a escanearlo.
    Estaría bueno poder presionar un botón de rotar, cambiar el orden si hace falta y luego hacer que se procese de nuevo.

    • En una versión menor reciente de paperless-ngx se agregaron combinar, dividir y rotar.
      Fuente: https://docs.paperless-ngx.com/changelog/#paperless-ngx-270
    • La versión más reciente de paperless-ngx admite rotar documentos. Revísalo.
    • Ay. Puedes rotar el documento en un lector de PDF y luego imprimir a PDF.
  • En una actualización relativamente reciente de Firefox se agregó un editor de PDF.
    Creo que mucha gente sigue teniendo una percepción de Firefox basada en versiones de hace tiempo. Como alguien que lo ha usado a diario durante toda su historia, creo que Firefox ha avanzado bastante en los últimos años.
    Si no lo has probado en un tiempo, vale la pena darle otra oportunidad.

  • Al leer en el README la frase “Stirling PDF does not initiate any outbound calls for record-keeping or tracking purposes”, me pregunto si habría alguna forma de que los usuarios potenciales lo verifiquen de antemano, más allá de auditar el código.
    En particular, para que la app funcione se necesitan algunas solicitudes web, pero ¿cómo podría una app web respaldar una afirmación así si, por ejemplo, tuviera que hacer solicitudes solo a una lista limitada de URL indicada en un manifiesto como Content-Security-Policy?
    Es un problema bastante concreto cuando se despliega una app en la que el usuario debe “subir” contenido sensible.

    • Si la hospedas tú mismo, Little Snitch puede ayudar. Si no la hospedas tú mismo, no se puede garantizar, y la postura por defecto es “espera lo peor”.
      https://www.obdev.at/products/littlesnitch/index.html
      Little Snitch es una herramienta centrada en macOS. Seguramente haya otras, pero no las conozco bien. Siento que esto debería ser una función a nivel del sistema operativo.
    • Si la hospedas tú mismo en Kubernetes, puedes configurar una política de red de deny-all egress para ese despliegue o pod. Así se bloquean todas las llamadas de red externas.
    • Una app web no necesita hacer solicitudes web externas para funcionar. El usuario que interactúa con la web es quien inicia las solicitudes.
      Puedes dar acceso a la app a través de un proxy HTTP y filtrar las solicitudes externas de la app web, o incluso no configurar el enrutamiento de red del servidor que hospeda esa app. Entonces lo único que queda son las solicitudes iniciadas por JavaScript dentro de la página renderizada.
    • Al final, es un problema presente en casi todos los paquetes, bibliotecas y sistemas que usamos.
      El open source funciona sobre un nivel considerable de confianza, y todos participamos en esa estructura.
    • Basta con poner en medio un sniffer o una herramienta de captura de red como Wireshark. Además, también podrías restringir por completo el acceso de red de la app solo a tu red doméstica local.
  • Estoy trabajando en un producto que podría describirse de forma similar.
    CxReports: herramienta web autohospedada para reportes PDF
    https://www.cx-reports.com

  • Vi este proyecto hace unos meses y me gustó de inmediato. Lo instalé y empecé a usarlo en la práctica, pero tenía muchos bugs, y algunas herramientas eran prácticamente inutilizables.
    Espero que ahora haya mejorado.

  • Una vez usé esto para aumentar el contraste de un PDF que contenía formularios de texto escaneados. El escaneo casi no se veía, así que básicamente necesitaba oscurecer más las partes oscuras y, si era posible, engrosarlas un poco para que se vieran mejor.
    Incluso una tarea que parecía tan menor no recibió buena ayuda de la herramienta, y la mejora fue muy pequeña. Lo repetí varias veces, pero después de la segunda vez ya no había ninguna diferencia visual, aunque el tamaño del archivo seguía cambiando.

    • En realidad, eso no es un problema del PDF en sí. En ese caso, el PDF es solo una envoltura delgada alrededor de una imagen rasterizada.
      Extrae la imagen, aumenta el contraste con GIMP o ImageMagick y crea un PDF nuevo. Si tienes muchos archivos, también puedes procesarlos con un script.
  • Estoy revisando la lista y buscando si hay una API para extraer texto de un PDF.
    O también me pregunto si se puede obtener en forma de vectores o embeddings.