2 points par GN⁺ 2024-05-04 | 1 commentaires | Partager sur WhatsApp
  • Stirling PDF est une plateforme d’édition PDF open source qui permet d’effectuer des opérations d’édition, de signature, de caviardage, de conversion et d’automatisation sans envoyer les documents à un service externe
  • Elle prend en charge une application desktop personnelle, une UI dans le navigateur, le déploiement sur son propre serveur et une API privée, afin de s’adapter à l’environnement de travail
  • Elle propose plus de 50 outils PDF, avec des fonctions comme la fusion, le fractionnement, l’OCR et la compression, ainsi que des pipelines no-code via l’UI et l’automatisation par API
  • Pour les usages en entreprise, elle propose le SSO, l’audit et le déploiement on-premise ; la plupart des outils disposent d’une API REST pour s’intégrer aux systèmes existants
  • Pour démarrer rapidement, il suffit d’exécuter docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf avec Docker, puis d’ouvrir http://localhost:8080

Ce que propose Stirling PDF

  • Stirling PDF est une plateforme d’édition PDF open source, exécutable sous forme d’application desktop personnelle, d’UI dans le navigateur ou de serveur auto-hébergé
  • En déploiement sur son propre serveur, il est possible d’utiliser une API privée et de traiter les opérations PDF sans envoyer les documents à un service externe
  • Les principaux usages sont l’édition, la signature, le caviardage, la conversion et l’automatisation

Principales fonctionnalités

  • Propose plus de 50 outils PDF
    • Édition
    • Fusion
    • Fractionnement
    • Signature
    • Caviardage
    • Conversion
    • OCR
    • Compression
  • Prend en charge l’automatisation et les workflows
    • Création de pipelines no-code dans l’UI
    • Traitement de millions de PDF via l’API
  • Fait aussi office de plateforme pour développeurs
    • Une API REST est fournie pour presque tous les outils
    • Intégration possible aux systèmes existants
  • L’UI est disponible dans plus de 40 langues
  • La liste complète des fonctionnalités est disponible dans la documentation

Déploiement et modes d’exécution

  • Les environnements pris en charge sont le client desktop, l’UI dans le navigateur et le serveur auto-hébergé
  • Le démarrage rapide est possible via une commande Docker
docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf

Fonctionnalités entreprise et d’exploitation

  • Les fonctionnalités de niveau entreprise incluent le SSO, l’audit et des déploiements on-premise flexibles
  • Les informations sur Server Plan et Enterprise sont disponibles dans Server Plan & Enterprise

Développement, contribution et support

  • Ressources principales
  • Canaux de support
  • Le guide de contribution suit CONTRIBUTING.md
  • Les commandes de build, de développement et de test utilisent Task comme lanceur de commandes unifié
    • task dev lance l’exécution de l’éditeur
    • task affiche les commandes fréquemment utilisées
    • Le contenu complet se trouve dans DeveloperGuide.md
  • Pour ajouter une traduction, consultez devGuide/HowToAddNewLanguage.md
  • La licence est open-core ; les détails se trouvent dans LICENSE

1 commentaires

 
GN⁺ 2024-05-04
Commentaires sur Hacker News
  • Ce qui manque vraiment dans l’écosystème PDF, ce sont des outils open source liés à la signature
    La signature PDF est juridiquement importante dans de nombreuses régions du monde à cause de réglementations comme eIDAS, mais en dehors d’Adobe ou d’outils propriétaires douteux, il est beaucoup trop difficile de signer cryptographiquement des documents PDF. Même si on trouve comment signer avec LibreOffice ou poppler, il est difficile d’obtenir un certificat vérifiable sans dépenser une fortune
    Si quelqu’un pouvait jouer pour les PDF et les certificats S/MIME le rôle de Let’s Encrypt, la confiance publique s’en trouverait grandement améliorée

    • On dit qu’un certificat vérifiable est nécessaire, mais on peut aller étonnamment loin avec un simple collage d’image de signature dans Preview sur macOS
    • Tout à fait d’accord. Je travaille sur ce sujet dans une entreprise qui est à la fois TRA et QTSP au sens d’eIDAS
      Excellente bibliothèque open source couvrant les PDF, les signatures numériques et les signatures PDF : https://github.com/MatthiasValvekens/pyHanko
      L’outil DSS de la Commission européenne est également utile. Il suffit d’envoyer un seul PDF, inutile de fournir à la fois l’original et la version signée : https://ec.europa.eu/digital-building-blocks/DSS/webapp-demo...
      L’entreprise est https://www.zealid.com/en/ et, via https://my.zealid.com/en, on peut gratuitement faire un onboarding à distance, récupérer et téléverser un certificat qualifié, signer en QES et télécharger le PDF. Une intégration API est aussi possible
    • C’est tellement vrai. J’ai demandé à notre responsable IT interne, très à l’aise avec Windows Server, combien de temps il lui faudrait pour mettre en place une PKI basique pour signer des documents internes, et il m’a regardé comme si j’avais deux têtes
    • Est-ce que Preview sur macOS ne répond pas à ce besoin ?
  • Je l’héberge chez moi. Je ne m’en sers pas directement, il suffit d’utiliser les outils CLI Linux sous-jacents
    Cela dit, je préfère que ma femme passe par ça plutôt que d’envoyer ses PDF à convertir ou à découper sur n’importe quel site web ou appli. De toute façon, ces sites utilisent souvent les mêmes outils en ligne de commande
    Elle ne se soucie pas vraiment de la méthode, et ça semble largement suffire à son cas d’usage

    • La partie sur les outils CLI Linux sous-jacents m’intéresse. J’ai trouvé ceci : https://pdfbox.apache.org/2.0/commandline.html
      PDFBox est une application Java, donc elle devrait être multiplateforme, pas seulement Linux. Si tu pensais à autre chose, ça m’intéresserait de le savoir
    • Mieux vaut simplement acheter un outil PDF à licence perpétuelle pour 70 dollars. Ça les vaut vraiment. Et si possible, récupérer aussi une version exe portable
  • Le README indique que « Stirling PDF n’initie pas d’appels externes à des fins d’archivage ou de traçage », donc j’imagine que la conclusion est toute trouvée

    • Créateur ici. Je pense que la documentation est un peu confuse. Ce n’est pas un projet entièrement fait avec ChatGPT
      Au départ, l’an dernier, c’était un défi de 24 heures pour tester ChatGPT 3.0 et voir à quoi il ressemblait, en construisant une appli complète dans le temps imparti avec ChatGPT
      Je l’ai posté sur Reddit, il y a eu beaucoup de demande, et ça a évolué en application complète. Les seules 24 premières heures ont été entièrement faites avec ChatGPT. Maintenant, plus d’un an s’est écoulé
    • Je me demande ce que cette phrase est censée vouloir dire. C’est pour attirer l’attention sur HN ? Ça ressemble un peu à ces produits ou services vaguement liés aux données qui ajoutent soudain quelque part sur leur landing page « au fait, on fait aussi de l’IA »
      On n’écrit pas dans un README « développé avec IntelliSense », après tout
    • Pour moi, cela signifie deux choses : ne pas l’exposer à l’internet public, et ne pas lui fournir d’entrées non fiables
      Du coup, selon mes critères, ça réduit fortement son utilité
    • Impressionnant. On vit vraiment une époque remarquable
    • Donc, on peut lui faire confiance ou pas ?
  • J’aimerais que cette fonctionnalité soit intégrée à Paperless. Il arrive parfois qu’un document scanné soit importé à l’envers et qu’il faille le rescanner
    Ce serait bien de pouvoir cliquer sur le bouton de rotation, réordonner si nécessaire, puis le faire retraiter

    • La dernière version mineure de paperless-ngx a ajouté la fusion, la séparation et la rotation
      Source : https://docs.paperless-ngx.com/changelog/#paperless-ngx-270
    • La dernière version de paperless-ngx prend en charge la rotation des documents. Tu peux vérifier
    • Aïe. Il suffit de faire pivoter le document dans le lecteur PDF, puis de l’imprimer en PDF
  • Une mise à jour relativement récente de Firefox a ajouté un éditeur PDF
    J’ai l’impression que beaucoup de gens ont encore une vision de Firefox figée à ce qu’il était il y a quelques versions. Pour quelqu’un qui l’utilise tous les jours depuis toujours, Firefox a quand même pas mal progressé au fil des années
    Si ça fait un moment que vous ne l’avez pas utilisé, ça vaut le coup de lui redonner une chance

  • En lisant la phrase du README « Stirling PDF does not initiate any outbound calls for record-keeping or tracking purposes », je me demande s’il existe un moyen pour un utilisateur potentiel de vérifier cela à l’avance, autrement qu’en auditant le code
    En particulier, certaines requêtes web sont nécessaires au fonctionnement de l’application, mais si, par exemple, elles devaient se limiter à une liste restreinte d’URL indiquée dans un manifeste comme une Content-Security-Policy, comment une application web peut-elle étayer ce type d’affirmation ?
    C’est un sujet assez précis lorsqu’on déploie une application où l’utilisateur doit « téléverser » du contenu sensible

    • Si vous l’hébergez vous-même, Little Snitch peut aider. Si ce n’est pas vous qui l’hébergez, il n’y a aucune garantie, et la position par défaut est de « s’attendre au pire »
      https://www.obdev.at/products/littlesnitch/index.html
      Little Snitch est un outil surtout centré sur macOS. Il en existe sans doute d’autres, mais je ne les connais pas bien. J’ai l’impression que ce genre de chose devrait relever de fonctionnalités au niveau du système d’exploitation
    • Si vous l’auto-hébergez sur Kubernetes, vous pouvez définir une politique réseau deny-all egress pour ce déploiement ou ce pod. Cela bloquera alors tous les appels réseau sortants
    • Une web app n’a pas besoin d’effectuer des requêtes web externes pour fonctionner. C’est l’utilisateur qui interagit avec le web qui initie les requêtes
      Vous pouvez fournir l’accès à l’application via un proxy HTTP et filtrer les requêtes externes de la web app, voire ne pas configurer de routage réseau pour le serveur qui l’héberge. Il ne resterait alors que les requêtes initiées par JavaScript dans la page rendue
    • Au final, c’est un problème présent dans presque tous les paquets, bibliothèques et systèmes que nous utilisons
      L’open source repose sur une part importante de confiance, et nous participons tous à cette structure
    • Il suffit de placer au milieu un sniffer ou un outil de capture réseau comme Wireshark. En complément, vous pouvez aussi limiter totalement l’accès réseau de l’application au seul réseau local domestique
  • Je travaille sur un produit qu’on pourrait décrire de manière similaire
    CxReports : un outil de rapports PDF web auto-hébergé
    https://www.cx-reports.com

  • Quand j’ai vu ce projet il y a quelques mois, il m’a tout de suite plu. Je l’ai installé et j’ai commencé à l’utiliser pour de vrai, mais il y avait beaucoup de bugs, au point que certains outils étaient inutilisables
    J’espère que c’est mieux maintenant

  • Je l’ai déjà utilisé pour augmenter le contraste d’un PDF contenant un formulaire texte scanné. Le scan était presque illisible, donc il fallait essentiellement assombrir davantage les zones sombres et, si possible, les épaissir un peu pour les rendre plus visibles
    Même cette tâche apparemment banale, l’outil n’a pas su la gérer correctement, et l’amélioration était très faible. J’ai essayé plusieurs fois, mais après la deuxième tentative il n’y avait plus de différence visuelle, seule la taille du fichier continuait à changer

    • En réalité, ce n’est pas vraiment un problème du PDF lui-même. Dans ce cas, le PDF n’est qu’une fine enveloppe autour d’une image raster
      Il suffit d’extraire l’image, d’augmenter le contraste avec GIMP ou ImageMagick, puis de recréer un nouveau PDF. S’il y a beaucoup de fichiers, on peut aussi le traiter par script
  • Je parcours la liste en cherchant s’il existe une API d’extraction de texte à partir d’un PDF
    Ou même s’il est possible de le récupérer sous forme de vecteurs ou d’embeddings