Tout ce que la bibliothèque sait faire, dit simplement
Un seul moteur écrit tout cela, et ce même moteur tourne sur Linux, sur Windows et sur macOS. C'est votre programme qui l'appelle, qu'il soit écrit en Rust ou en Python : les deux disent les mêmes choses et produisent les mêmes documents, à l'octet près.
Voici l'ensemble, groupe par groupe, avec ce que chaque chose donne sur le document fini. Quand un exemple la montre à l'œuvre, la ligne y mène : le document produit et le code qui l'a produit, dans les deux langages.
Le texte et les polices
- Mettre votre propre police dans le document, pour qu'il s'affiche pareil sur tous les écrans et toutes les imprimantes, même là où personne n'a installé cette police. Voir
- Seules les lettres que le document dessine vraiment voyagent avec lui. Une police contient des milliers de dessins et une lettre en utilise quelques dizaines : ce sont ces quelques dizaines qui sont emportées. Voir
- Le texte reste du texte : celui qui ouvre le fichier peut le sélectionner, le copier et y chercher un mot, et un moteur de recherche aussi. Voir
- Demander la largeur qu'un texte occupera avant de le dessiner, pour que rien ne déborde du cadre que vous lui destiniez. Voir
- Demander la plus grande taille à laquelle un titre tient encore dans une largeur donnée : il rapetisse au lieu de déborder. Voir
- Faire pivoter un bloc de texte de l'angle que vous voulez, autour du point que vous voulez. Voir
- Écarter les lettres, les mots ou les lignes, monter un chiffre au-dessus de la ligne, ou dessiner le texte en creux.
Les paragraphes, les listes et les colonnes
- Donner un paragraphe et une largeur : le moteur trouve où chaque ligne se coupe. Voir
- Aligner le texte à gauche, à droite, au centre, ou contre les deux bords à la fois, la dernière ligne étant traitée à part. Voir
- Décaler la première ligne, décaler tout le bloc, et laisser de l'air au-dessus et au-dessous. Voir
- Décider du sort d'un mot trop long pour la colonne : le laisser dépasser, ou le couper et continuer en dessous. Voir
- Couper après une barre oblique ou un tiret, pour qu'une longue adresse Internet ou un nom composé tienne là où il faut. Voir
- Respecter le trait d'union qu'un rédacteur a marqué comme facultatif, et l'espace qu'il ne faut jamais couper. Voir
- Remplir le vide avant un numéro de page par une file de points, comme le fait un sommaire. Voir
- Poser les taquets où la tabulation s'arrête, alignés à gauche, au centre, à droite ou sur la virgule. Voir
- Des listes à puces, des listes numérotées et des listes dans des listes, le texte tombant proprement sous sa puce. Voir
- Demander quelle part d'un texte tient dans une hauteur donnée, et verser le reste dans la colonne suivante ou sur la page suivante. Voir
- Changer de police, de taille, de couleur ou de soulignement au milieu d'une phrase, et la ligne reste bien posée. Voir
- Poser un mot en travers de la page comme un tampon, mis à l'échelle de la place qu'on lui donne et incliné. Voir
Les tableaux
- Fixer la largeur d'une colonne, la donner en part du tableau, ou laisser le moteur mesurer ce qu'elle contient de plus large. Voir
- Un tableau plus long que la page continue sur autant de pages qu'il faut, demandé une seule fois. Voir
- Les lignes d'en-tête, et celles du bas, reviennent en haut et en bas de chaque page. Voir
- Garder un groupe de lignes ensemble, pour qu'un total ne se retrouve jamais seul en haut d'une page. Voir
- Fusionner des cellules sur plusieurs colonnes et sur plusieurs lignes. Voir
- Choisir quels filets sont tracés — le cadre, telle ligne, une ligne sur deux — et l'épaisseur et la couleur de chacun. Voir
- Donner à une seule cellule sa propre bordure, côté par côté, chaque côté avec son épaisseur et sa couleur. Voir
- Colorer le fond de l'en-tête, du bas, d'une ligne sur deux, d'une ligne précise ou d'une colonne précise. Voir
- Aligner les chiffres sur la virgule, pour qu'une colonne de montants se lise droit. Voir
- Mettre une image dans une cellule, entière et jamais déformée. Voir
- Couper le texte d'une cellule au bord de sa colonne plutôt que de le laisser déborder sur sa voisine. Voir
- Demander après coup où une ligne, une colonne ou une cellule a atterri, et dessiner ou poser un lien par-dessus. Voir
Les images
- Poser un JPEG, un PNG ou un BMP n'importe où sur la page, à n'importe quelle taille. Voir
- Ajuster une image dans un cadre : à sa taille d'origine, contenue dedans, le couvrant, étirée à ses bords, ou réduite seulement si elle est trop grande. Voir
- L'ancrer dans ce cadre — un coin, un côté, le milieu — la tourner d'un quart, d'un demi ou de l'angle que vous voulez, et la retourner comme dans un miroir. Voir
- Lire la résolution que le fichier annonce, et poser l'image à la taille qu'elle fera vraiment à l'impression. Voir
- Respecter le sens dans lequel un appareil photo a enregistré une image, pour qu'une photo prise de travers ne s'affiche pas de travers. Voir
- Garder la transparence d'une image, en retirer une couleur, ou peindre sa forme dans la couleur de votre choix. Voir
- Emporter avec l'image la description de ses propres couleurs, pour qu'elles veuillent dire la même chose sur une presse. Voir
Les couleurs et l'impression
- Donner une couleur en niveaux de gris, en couleurs d'écran, ou dans les quatre encres qu'une presse dépose. Voir
- La donner plutôt sous forme de mesure, qui ne doit rien à un écran ni à une presse en particulier. Voir
- Emporter la description de vos couleurs dans le fichier, pour que ce que vous avez choisi soit ce qui sort à l'autre bout. Voir
- Nommer une encre spéciale — une couleur maison, un vernis, un métallisé — imprimée sur sa propre plaque. Voir
- Nommer plusieurs encres à la fois, chacune à son propre taux. Voir
- Annoncer pour quelle presse ou quel écran le document a été préparé. Voir
- Marquer la coupe, le fond perdu et la zone utile dont un imprimeur a besoin pour couper la feuille. Voir
- Forcer un document à s'imprimer à sa taille réelle, et retirer à celui qui l'ouvre l'option qui le rétrécit. Voir
- Demander l'impression recto-verso, un bac à papier, un nombre de copies et les pages que la fenêtre d'impression propose d'emblée. Voir
Le dessin
- Des traits, des rectangles et des courbes, remplis, contournés, ou les deux à la fois. Voir
- Découper le dessin selon une forme pour que rien ne déborde — jusqu'à la forme des lettres elles-mêmes. Voir
- Une couleur qui se fond dans une autre, le long d'une ligne ou en s'éloignant d'un cercle, en autant d'étapes que vous voulez. Voir
- Remplir une forme, ou un mot, avec ce dégradé. Voir
- Dessiner un petit motif et le faire se répéter sur toute une surface. Voir
- Rendre n'importe quoi partiellement transparent, et le mêler à ce qui se trouve dessous de seize façons différentes. Voir
- Faire disparaître un dessin en se servant d'un autre comme masque. Voir
- Dessiner une chose une seule fois et la reposer autant de fois qu'on veut, sans que le fichier grossisse à chaque fois. Voir
- Des calques que celui qui ouvre le fichier peut montrer ou cacher, chacun avec son état à l'écran et sur le papier. Voir
Les codes-barres et les codes carrés
- Ceux à rayures, pour une caisse de magasin ou un lecteur d'entrepôt : Code 128, EAN-13, UPC-A et EAN-8. Voir
- Un QR Code portant une adresse Internet, un paiement, ou tout ce qu'un téléphone doit reprendre d'un seul coup. Voir
- Un DataMatrix, pour une étiquette qui n'a presque pas de place. Voir
- Un PDF417, le large et plat qu'on trouve sur un permis de conduire ou une carte d'embarquement. Voir
- Un Aztec, celui des billets de train lus sur un écran allumé. Voir
- Un code de paiement qu'une application bancaire lit, pour qu'une facture soit réglée sans que personne retape un numéro de compte. Voir
Les formulaires
- Des cases où l'on tape, des cases que l'on coche, des listes où l'on choisit, et des séries de boutons ronds dont un seul peut être retenu. Voir
- Chacun avec son cadre et sa couleur, ce qu'il affiche au départ, et le droit ou non de rester vide. Voir
- Un emplacement réservé à une signature, encadré sur la page ou ne laissant aucune trace. Voir
- Un formulaire qui reste correct dans un logiciel de lecture qui ne dessine rien de lui-même, parce que chaque case porte sa propre image. Voir
L'archivage et l'accessibilité
- Écrire un fichier fait pour s'ouvrir encore dans vingt ans, portant en lui tout ce dont il a besoin. Voir
- Marquer le texte pour qu'une aide à la lecture distingue un titre d'un paragraphe et énonce la page dans le bon ordre. Voir
- Décrire une image avec des mots pour qui ne la voit pas, et dire quelle cellule est l'en-tête de quelle colonne. Voir
- Glisser n'importe quel fichier à l'intérieur du document — les chiffres d'une facture, un tableur, un fichier source — et dire à quoi il sert. Voir
- Écrire la facture électronique : un seul fichier, une page pour une personne et les mêmes montants pour une machine. Voir
- Dire qui a fait le document, quand, et de quoi il parle, dans le bloc que lisent les archives et les moteurs de recherche. Voir
- Décrire vos propres informations — un numéro de lot, une référence interne — d'une façon qu'un contrôleur d'archivage accepte quand même. Voir
La lecture d'un PDF que vous avez déjà
- Ouvrir un PDF qui existe déjà et compter ses pages. Voir
- En sortir une page et la placer dans un nouveau document, avec ses polices et ses couleurs telles quelles. Voir
- Poser votre propre texte par-dessus cette page, pour qu'une facture tombe sur le papier à en-tête que votre imprimeur a fourni. Voir
- Se retrouver dans un fichier dont l'index est cassé, en le parcourant d'un bout à l'autre.
La signature
- Sceller un document avec votre propre certificat, pour que celui qui le reçoit puisse prouver qui l'a envoyé et que rien n'a changé depuis.
- Sceller un PDF qui existe déjà, et ajouter une deuxième signature après la première sans la déranger.
- Annoncer ce que le sceau autorise encore ensuite : rien du tout, remplir un formulaire, ou ajouter des notes.
Le fichier lui-même
- Tous les formats de page habituels, de la grande affiche à la carte postale, plus n'importe quel format que vous nommez, debout ou couché. Voir
- Les mêmes pages pour environ deux fois moins d'octets, parce que rien de ce que personne ne lit n'est emporté.
- Choisir à quel point le fichier est comprimé, ou ne pas le comprimer du tout pour le lire de vos propres yeux. Voir
- Choisir quelle version du format PDF est écrite, ou laisser le moteur demander la plus ancienne qui sache porter ce que vous avez utilisé. Voir
- Les mêmes données donnent le même fichier, octet pour octet, à chaque fois : le moteur ne regarde jamais l'horloge.
- Rien n'atteint jamais le réseau. Il n'y a aucune connexion à ouvrir, aucun compte à vérifier et aucun serveur de licence à attendre.
- Écrire dans un fichier, en mémoire, ou directement dans un flux déjà ouvert. Voir
Certains de ces points méritent une page à eux
- La facture électronique, et les dates où elle devient obligatoire
- Signer un document, et ce qu'un sceau prouve
- Des documents qui s'ouvrent encore dans vingt ans, et que tout le monde peut lire
- Les profils de couleur : ceux que le moteur accepte, et à qui appartient celui qui voyage dans votre document
- Un fichier prêt pour la presse, et la partie de la norme que le moteur écrit
- Tous les exemples travaillés, par sujet
Ce qu'il ne fait pas
Une liste qui ne dit que oui ne rend service à personne. Le moteur écrit des PDF et sait reprendre des pages d'un PDF existant ; il ne ressort pas le texte ni les images du fichier de quelqu'un d'autre, il ne pose pas de mot de passe sur un document, et il n'ouvre pas un document qui en porte déjà un.
Glossaire
- Factur-X
- Une facture qui sert deux lecteurs à la fois. Pour la personne qui la reçoit, c'est une page ordinaire. Pour son logiciel de comptabilité, ce sont les mêmes montants rangés à l'intérieur du même fichier, sous une forme qu'il lit tout seul : plus rien à retaper. La loi française l'impose entre entreprises.
- CMJN
- Les quatre encres d'une imprimerie : le cyan (un bleu), le magenta (un rose), le jaune et le noir. Un écran, lui, fabrique ses couleurs avec de la lumière. Un document qui part à l'impression dit donc ses couleurs en encres, et non en couleurs d'écran.
- QR code
- Le carré de points noirs et blancs que l'on vise avec son téléphone : sur une affiche, sur une table de restaurant, en bas d'une facture. Il porte une adresse Internet, ou le détail exact d'un paiement, pour que personne n'ait rien à retaper. Sur une facture, il transforme le règlement en un seul geste.
- DataMatrix
- Un tout petit code carré, parfois plus petit qu'un grain de riz, pour ce qui n'a la place de rien de plus gros : une boîte de médicament, une pièce électronique, un colis. Il se lit encore quand un coin est rayé ou taché, et c'est pour cela que les usines et les pharmacies l'impriment.
- Aztec
- Le code avec une petite cible au milieu, celui des billets de train et des cartes d'embarquement montrées sur un écran de téléphone. Il a été conçu pour être lu sur un écran allumé et à travers une vitre rayée, et il tient dans moins de place que les autres pour le même texte.
- PDF417
- Un code large et plat, fait de barres empilées, celui que l'on trouve au dos d'un permis de conduire, sur une carte d'embarquement d'avion ou sur une étiquette d'expédition. Il porte plusieurs centaines de caractères — une identité entière, une ligne de livraison entière — là où un code à barres ordinaire porte un simple numéro.
- signature
- Un cachet posé à l'intérieur du document. Il prouve deux choses d'un coup : qui l'a approuvé, et que rien n'y a changé depuis. Le logiciel qui ouvre le fichier l'annonce dans un bandeau, en haut de la page.
D'où viennent ces informations
Chacun des textes ci-dessous a été lu le 27 juillet 2026, et son lien est donné ici pour que vous puissiez le lire vous-même. Les règles changent et les dates inscrites dans la loi se déplacent : si vous lisez ceci longtemps après ce jour-là, allez vérifier.
- ISO 32000-1:2008 — Document management — Portable document format — Part 1: PDF 1.7
-
Organisation internationale de normalisation — juillet 2008
Ce que nous en faisons : Le format lui-même. C'est ce que le moteur écrit, clause par clause.
- ISO/IEC 18004:2024 — Information technology — Automatic identification and data capture techniques — QR code bar code symbology specification
-
Organisation internationale de normalisation — août 2024
Ce que nous en faisons : Le QR Code que dessine le moteur, en mode octet, au niveau intermédiaire de correction d'erreurs.
- ISO/IEC 16022:2024 — Information technology — Automatic identification and data capture techniques — Data Matrix bar code symbology specification
-
Organisation internationale de normalisation — mai 2024
Ce que nous en faisons : Le DataMatrix que dessine le moteur, dans sa forme ECC 200.
- ISO/IEC 24778:2024 — Information technology — Automatic identification and data capture techniques — Aztec Code bar code symbology specification
-
Organisation internationale de normalisation — avril 2024
Ce que nous en faisons : Le code Aztec que dessine le moteur.
- ISO/IEC 15438:2015 — Information technology — Automatic identification and data capture techniques — PDF417 bar code symbology specification
-
Organisation internationale de normalisation — septembre 2015
Ce que nous en faisons : Le PDF417 que dessine le moteur.
- ISO/IEC 15417:2007 — Information technology — Automatic identification and data capture techniques — Code 128 bar code symbology specification
-
Organisation internationale de normalisation — juin 2007
Ce que nous en faisons : Le Code 128, celui à barres qui accepte n'importe quel texte.
- ISO/IEC 15420:2025 — Information technology — Automatic identification and data capture techniques — EAN/UPC bar code symbology specification
-
Organisation internationale de normalisation — novembre 2025
Ce que nous en faisons : L'EAN-13, l'UPC-A et l'EAN-8, ceux à barres que lit une caisse de magasin.