Photo : Jonathan Cosens Photography sur Unsplash
PdfCraft : Acrobat libre en Rust, ce qu'il sait faire
PdfCraft est un logiciel libre pour lire, organiser, combiner, découper et sécuriser des PDF. Écrit en Rust pur, il vise à remplacer Acrobat et fonctionne hors ligne, sans compte, sans télémétrie ni cloud. Les articles de presse le nomment parfois PrintCraft, mais le dépôt s’appelle pdfcraft.
Le projet estime avoir atteint environ la moitié des fonctions hors ligne d’Acrobat Pro. Il les juge à 88 % indispensables, mais reconnaît que cela ne représente qu’environ un tiers du travail total.
Ce qui est solide
La lecture est le point fort. Le crénage, les ligatures, l’écriture de droite à gauche, les scripts complexes, le CJK vertical, les emojis couleur, les dégradés, les masques et la transparence sont rendus. Le rendu se fait par tuiles, pour un zoom net, avec plusieurs modes d’affichage : continu, deux pages, mode Lecture, thèmes clair et sombre.
La recherche se fait en temps réel, avec la navigation dans les signets, les miniatures et les étiquettes de pages. L’organisation est complète : rotation, suppression, insertion de pages vierges ou issues d’un autre fichier, déplacement, et annulation avec un historique nommé.
Pour combiner, extraire et découper, les liens, les destinations nommées, les formulaires, les calques et les pièces jointes sont conservés. La sécurité prend en charge le gestionnaire standard du PDF, du RC4 40 bits jusqu’à l’AES-256, avec mots de passe utilisateur et propriétaire, et respecte les restrictions.
Les annotations couvrent les notes, le surlignage, les formes, l’encre et les zones de texte, avec des conversations en fil. Les formulaires se remplissent et se créent, avec un JavaScript exécuté dans un bac à sable. Les calques optionnels s’activent et se désactivent avec un re-rendu immédiat.
Ce qui manque
Le projet liste ses faiblesses sans détour :
- l’édition du texte existant, surtout en CJK ;
- l’OCR hors alphabet latin ;
- l’import et l’export Office ;
- XFA et la localisation.
L’export PDF/A est absent. La vérification PDF/A, X et UA, le preflight, est « mince ou manquante ». Les horodatages et la validation de signature à long terme ne sont pas encore au point, même si les signatures numériques de base fonctionnent.
Le rendu repose encore sur la bibliothèque hayro, le moteur propre étant en cours de développement. Les plantages sur fichiers hostiles font l’objet de tests de régression, mais le projet ne publie pas de comparaison côte à côte avec Acrobat.
Les chiffres annoncés
Ces mesures viennent du projet :
- sur 983 fichiers du corpus de tests pdf.js, 963 s’ouvrent et se rendent correctement, sans plantage ;
- 958 cycles d’ouverture, de modification et de sauvegarde réussissent ;
- plus de 200 tests unitaires, de propriétés et d’interface tournent dans le dépôt.
L’auteur affirme aussi que les pages d’un document combiné sont rendues à l’identique des sources. Cette affirmation n’a pas été vérifiée ici.
Le corpus pdf.js est un bon test de robustesse, mais il ne mesure pas la vitesse. Le projet n’en publie pas.
Guide pour un agent LLM
PdfCraft encadre fortement le contrôle par un agent. Le serveur MCP est désactivé par défaut. Il ne tourne que si un agent lance pdfcraft-cli mcp, il communique par stdin et stdout, et il n’ouvre aucun port réseau.
La commande de lancement est :
pdfcraft-cli mcp --root /chemin/vers/dossier --compact
L’option --root restreint toutes les lectures et écritures à un répertoire, y compris celles des outils communs. C’est la première chose à mettre en place. Sans elle, l’agent n’a accès qu’à ce que le serveur lui tend. --compact réduit le nombre d’outils exposés à une dizaine, plus tool_search et tool_call, ce qui économise du contexte.
Les outils disponibles couvrent l’ouverture, l’inspection, le rendu PNG, l’extraction et la recherche de texte, la rotation, la suppression, le déplacement et l’insertion de pages, les signets, les étiquettes, les commentaires, les formulaires, la protection par mot de passe, les métadonnées, l’annulation, la sauvegarde, la combinaison, l’extraction et le découpage. Les commandes s’appellent avec command_run, par exemple file.open ou page.rotate.
Les ressources pdfcraft://document et pdfcraft://commands donnent l’état de la session et le catalogue. Avant d’ouvrir un PDF, pdfcraft://document renvoie un tableau documents vide : c’est normal.
Points de vigilance :
- les exports sont synchrones : pas de progression ni d’annulation en arrière-plan ;
- un argument de premier niveau inconnu renvoie
-32602, mais un paramètre de commande inconnu est seulement ignoré avec un avertissement : vérifiez les sorties ; stop_on_errorvauttruepar défaut danscommand_batch; un lot en échec est marquéisError: trueavec le détail par étape ;render_previewcommence à la page 1 et acceptemax_sidejusqu’à 4 096 ;- le dépôt ne fournit pas d’exemple de configuration pour un client MCP : la commande de lancement suffit.
Une règle simple : pour toute modification, l’agent ouvre le fichier, fait un rendu de la page touchée, applique la modification, refait le rendu, puis sauvegarde. Le rendu avant et après est la seule preuve que la modification n’a rien cassé d’autre.
Verdict
PdfCraft est utile pour lire, annoter, remplir et réorganiser des PDF, et pour automatiser ces tâches avec un agent confiné à un dossier. Il ne convient pas encore aux usages qui exigent du PDF/A, de l’édition de texte existant ou une signature à valeur probante. Le test à faire : prenez un formulaire que vous remplissez souvent, remplissez-le ici, puis ouvrez le résultat dans un autre lecteur.
Articles liés
ArtCraft : la suite libre en Rust qui imite Adobe
ArtCraft réunit sept logiciels libres en Rust qui reprennent Photoshop, Premiere, Lightroom et leurs cousins : statut, licences, MCP et limites.
Lire l'article →Sources
Ce que j'ai lu, regardé ou vérifié pour écrire cet article.
- Dépôt GitHub storytold/pdfcraft : fonctionnalités, statut annoncé, plateformes, licence et chiffres relevés le 9 octobre 2026 github.com (ouvre dans un nouvel onglet)
- docs/mcp.md du dépôt pdfcraft : outils MCP, confinement par racine et limites raw.githubusercontent.com (ouvre dans un nouvel onglet)
- Page de l'organisation storytold, relevée le 9 octobre 2026 : nom du dépôt Acrobat (pdfcraft) github.com (ouvre dans un nouvel onglet)