30 points par GN⁺ 2025-10-14 | 2 commentaires | Partager sur WhatsApp
  • Un outil CLI open source de manipulation de fichiers PDF, basé sur Python et développé par l’équipe py-pdf
  • Offre de nombreuses fonctions d’édition PDF : affichage des métadonnées, extraction et fusion de pages, suppression de pages, conversion d’images en PDF, compression de documents, création de booklets, etc.
  • Prend aussi en charge des fonctions avancées comme l’extraction d’images et de texte annoté depuis un PDF ou la réparation du xref d’un PDF endommagé par une édition manuelle
  • La récente version 0.5.0 ajoute de nouvelles fonctionnalités comme la signature et la vérification de documents PDF, l’extraction des seules pages annotées ou la rotation de pages spécifiques

Outil CLI PDF open source pdfly

  • pdfly est le dernier projet de l’organisation py-pdf, un outil en ligne de commande pour manipuler des fichiers PDF fonctionnant dans un environnement Python
  • Il est développé à partir des bibliothèques fpdf2 et pypdf, et son installation comme son utilisation sont simples, ce qui le rend exploitable sur diverses plateformes
  • Le principal atout de pdfly est sa large couverture fonctionnelle par rapport aux alternatives open source, ainsi que son interface intuitive, accessible même aux développeurs débutants
  • Comparé à d’autres projets, il permet de traiter facilement la majorité des tâches liées aux PDF avec un seul outil, ce qui le rend particulièrement efficace

Fonctionnalités principales

  • Affichage des métadonnées

    • Les commandes pdfly meta et pdfly pagemeta permettent d’afficher les métadonnées PDF
    • Fournit des données du système d’exploitation comme le nom du fichier, les permissions, la taille, les dates de création / modification / accès
    • Affiche aussi des données internes au PDF comme la version PDF, le nombre de pages, le chiffrement, les informations sur les polices, les pièces jointes et le nombre d’images
  • Composition et édition de documents

    • pdfly cat : extraction de pages spécifiques et fusion de documents
    • pdfly rm : suppression sélective de pages
    • pdfly x2pdf : conversion d’images en document PDF
    • pdfly compress : compression de documents
    • pdfly 2-up et pdfly booklet : création de booklets
  • Extraction de contenu

    • pdfly extract-images : extraction d’images depuis un PDF
    • pdfly extract-annotated-text : extraction de texte annoté
  • Réparation de PDF

    • pdfly update-offsets : corrige la table xref d’un PDF modifié manuellement dans un éditeur de texte afin de le rendre à nouveau ouvrable
    • La table xref est un index des offsets en octets dans le document, qui peut être endommagé lors d’une édition manuelle

Sortie de la version 0.5.0 et nouveautés

  • Sortie de pdfly 0.5.0 le 13 octobre 2025
  • pdfly sign : permet d’ajouter facilement une signature électronique à un document PDF
  • pdfly check-sign : vérification de signature d’un document PDF
  • pdfly extract-annotated-pages : extrait sélectivement uniquement les pages annotées, pour faciliter les revues répétées et les retouches dans de gros documents
  • pdfly rotate : rotation de pages spécifiques dans un document

Feuille de route

  • Diverses idées de fonctionnalités sont en préparation dans les issues GitHub marquées up-for-grabs
  • Des issues labellisées good first issues sont prêtes pour les nouveaux contributeurs, afin d’encourager aussi les débutants dans l’open source à participer
  • Le projet prévoit de développer en priorité les fonctionnalités liées à la signature électronique comme pdfly sign et check-sign
  • Les retours utilisateurs, rapports de bugs et propositions de fonctionnalités sont activement encouragés

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

2 commentaires

 
ifmkl 2025-10-14

Après avoir utilisé Moduui PDF, j’ai créé et j’utilise un outil PDF qui ne prend en charge que quelques fonctions (extraire, fusionner, supprimer, faire pivoter, réorganiser les pages) afin qu’il soit plus pratique pour mon usage personnel. Je l’ai développé pour le navigateur avec pdf.js /pdf-lib.js. Avant de créer mon propre outil, j’ai moi aussi cherché, et j’ai découvert qu’il existe énormément d’outils et de sites autour des PDF.

 
GN⁺ 2025-10-14
Commentaires sur Hacker News
  • C’est un commentaire d’il y a 10 ans, mais je pense qu’il reste toujours valable. Rien que pour les bibliothèques Python, il y en a énormément qui proposent des fonctionnalités PDF partiellement redondantes. C’est pareil dans d’autres langages, avec d’innombrables bibliothèques. Au fond, chaque bibliothèque regroupe diverses fonctions qui transforment des structures de données similaires. Du coup, pour effectuer des traitements PDF complexes, il faut souvent combiner deux ou trois bibliothèques, ce qui est inefficace à la fois du point de vue du développeur et des ressources informatiques. Si quelqu’un concevait en Rust des structures bas niveau de lecture/écriture PDF en mémoire, bien pensées, je pense que tout l’écosystème y gagnerait énormément. N’importe quel langage ou bibliothèque PDF pourrait exploiter ces structures, et leur adoption réduirait probablement la quantité de code tout en améliorant les performances et la sécurité. Et s’il suffisait de fournir get_structure_pointer() et set_structure_pointer(), les bibliothèques pourraient aussi s’interconnecter librement entre elles. Avec une telle architecture, de petites bibliothèques pourraient ajouter facilement des fonctionnalités et être adoptées rapidement. Je ne sais pas qui voudrait réellement faire ça, mais je pense qu’on en a vraiment besoin

    • Lorsqu’on crée une bibliothèque PDF, il y a des arbitrages de conception permanents selon l’usage visé. Le simple fait de choisir « en mémoire » est déjà une décision importante, car le format PDF lui-même a été conçu pour qu’il ne soit pas nécessaire de charger l’intégralité du document en mémoire d’un coup. Et si l’on préfère des modules profonds avec une interface minimale, on ne peut pas considérer qu’un module superficiel et très large fonctionnellement soit la réponse. Enfin, dans des environnements managés comme la JVM, une bibliothèque construite autour d’une interface C introduit aussi de la complexité et du surcoût. Lien connexe

    • Je suis d’accord avec l’idée selon laquelle « si quelqu’un créait une excellente structure PDF en mémoire en Rust, cela révolutionnerait l’écosystème ». Mais créer une bibliothèque bien meilleure que toutes celles qui existent déjà n’est déjà pas simple ; la maintenir à jour, corriger les bugs et l’entretenir en continu est encore bien plus difficile. Même avec un financement suffisant, il faut trouver chaque année quelqu’un qui gardera la motivation, puis trouver un nouveau responsable si cette personne perd l’intérêt, tout en acceptant inévitablement des mécontentements entre-temps. En résumé, j’aimerais remercier d’avance le ou la bénévole qui consacrera sa vie à créer et maintenir cela

    • En voyant le commentaire disant qu’« une excellente structure PDF en mémoire en Rust serait formidable », je partage l’open source lopdf, qui existe déjà

    • Je suis justement en train de déboguer un problème de parsing PDF, et j’en suis arrivé à écrire mon propre parseur. J’ai essayé de comprendre un parseur existant, mais le code était si bancal que j’ai fini par tout réimplémenter moi-même. Le format PDF est franchement devenu très complexe, à force d’accumuler toutes sortes de rustines et d’ajouts de fonctionnalités excessifs au fil de son évolution. L’idée de départ est bonne, mais il existe tellement de types d’objets et de propriétés particulières dans les PDF que, chaque fois qu’on veut faire des bindings, on se retrouve à répéter toute la complexité du FFI. À la place, on pourrait peut-être définir une correspondance officielle entre PDF et JSON afin que les grandes bibliothèques puissent s’échanger des données, à condition que la mémoire ne soit pas un problème. Le modèle objet n’est pas totalement différent

    • Je plaisante en disant que toute cette discussion peut se résumer à une seule BD XKCD, et je partage le lien correspondant

  • Poppler n’est pas présenté en détail sur son site officiel, mais en pratique c’est une bibliothèque fournie avec une grande variété d’outils, facilement utilisable dans les distributions Linux. Je l’ai très bien utilisé à plusieurs reprises. Lien wiki connexe

    • J’ai utilisé ces outils pour analyser plusieurs centaines de milliers de fiches de paie PDF et injecter les données dans un nouveau système financier. Je lui mettrais 10/10

    • J’utilise souvent les outils poppler moi aussi. Je les trouve vraiment excellents

  • Pour les travaux bas niveau, qpdf est assez utile

    • Je suis venu pour dire la même chose. Qpdf est ce que j’utilise le plus en ligne de commande pour manipuler des fichiers PDF. On peut s’en servir pour le chiffrement, le déchiffrement, l’extraction de pages, la fusion, etc. C’est sous licence Apache et écrit en C++
  • Il y a aussi pdfcpu.io. En revanche, si l’on a seulement besoin de modifications simples sur des PDF, trouver une application GUI open source multiplateforme est très difficile. Personnellement, je n’en ai toujours pas trouvé

    • J’ai déjà bien utilisé PDF SAM basic ("split and merge"). Lien du site C’est open source, multiplateforme, et il y a aussi des fonctionnalités supplémentaires réservées à la version payante

    • Si l’auto-hébergement est possible, Signature PDF était aussi plutôt bien. Lien du projet

    • Je me demande si pdf24 tools ne ferait pas l’affaire. Il prend aussi en charge une installation hors ligne

    • J’ai essayé pdfcpu images list, et j’ai été sidéré de voir qu’il s’est mis à télécharger depuis l’extérieur une police locale. Nous sommes en octobre, mais ça m’a trop effrayé, donc j’ai laissé tomber

    • Après réflexion, j’ai fini par prendre une licence payante Creative Cloud. Acrobat fonctionne tout simplement, donc difficile d’y échapper. Je veux vraiment une alternative, mais en pratique il n’y a pas de remplaçant satisfaisant

  • J’aimerais présenter PDFgear. Ce n’est pas du très haut de gamme, mais pour l’édition PDF de niveau intermédiaire parmi les alternatives à Adobe, c’est pratiquement le seul outil vraiment utilisable, il est gratuit, et il existe partout sauf sur Linux

    • Comme il est dit que c’est pris en charge partout sauf sur Linux, je demande pour plaisanter où sont les binaires OpenVMS, Apple II et DEC Alpha

    • Il y a aussi Master PDF, qui existe pour Linux, et je partage le lien

    • Même si ça a l’air correct, j’ai du mal à croire à l’argument « c’est gratuit, sans publicité, sans revente de données, et l’entreprise fonctionne de manière transparente uniquement grâce à ses financements ». Je cite l’explication présente sur le site, selon laquelle PDFgear fonctionnerait sans revenus publicitaires ni revente de données, grâce aux fonds d’investissement et à l’optimisation technique

    • J’ai quelques soupçons à propos de PDFgear. Il aurait déjà effectué des uploads vers le cloud à l’insu des utilisateurs, et il semble aussi que l’entreprise gère son propre subreddit

  • Ce que j’ai appris aujourd’hui : il existe déjà énormément d’outils multifonctions pour les fichiers PDF

  • J’aimerais vraiment qu’il existe une fonctionnalité qui génère automatiquement la table des matières (métadonnées). Les vieux PDF de livres n’ont souvent pas ça, donc la navigation est très pénible. Il y en a une version dans Kybook3, mais elle ne fonctionne pas correctement. Avec les LLM d’aujourd’hui, je me demande si ce ne serait pas enfin possible

    • J’utilise pdf.tocgen. Ce n’est pas entièrement automatique, mais cela fait gagner énormément de temps par rapport à un travail totalement manuel
  • Je me demande si un utilitaire d’automatisation de signature PDF a vraiment du sens. L’essence même d’une signature, c’est qu’un humain a lu et accepté le document ; du coup, automatiser cela me semble discutable

    • Je pense qu’il n’y a aucune raison pour qu’une entreprise ne signe pas automatiquement les documents qu’elle produit elle-même. Ici, il ne s’agit pas d’une signature visuelle dans le PDF, mais d’une signature cryptographique permettant à n’importe qui de vérifier l’émetteur. Autrement dit, cela permet à l’utilisateur de vérifier qu’un relevé bancaire provient bien de la banque

    • Un CEO n’a pas le temps de signer un grand nombre de contrats de travail. Même à l’époque analogique, une secrétaire apposait le tampon à sa place ; dans ce sens, automatiser la signature a tout à fait du sens dans la réalité

    • On peut émettre automatiquement, avec signature, une attestation bancaire à la demande. On ne s’attend pas à ce qu’un directeur d’agence soit assis à signer chaque demande une par une

    • Par exemple, si je dois signer 25 PDF, il est plus pratique de les revoir à l’écran puis de les signer en lot, plutôt que de tout faire manuellement un par un dans un lecteur

  • En plus de ce qui a été mentionné ci-dessus, il y a aussi pdfcpu, un « Go PDF processor and CLI ». GitHub de pdfcpu

  • Pour moi, l’outil PDF à tout faire auquel je pensais était la suite d’outils PDF de Didier Stevens. Lien du programme