Convertir du Markdown en PDF sans perdre le document
Le Markdown est conçu pour un écran qui défile. Un PDF a des pages, et les pages ont des bords. La plupart des convertisseurs ignorent cette différence : ils confient le fichier à un navigateur, appuient sur imprimer, et renvoient ce qui en sort. C’est pourquoi un tableau perd ses quatre dernières colonnes, pourquoi un titre se retrouve isolé en bas de page, et pourquoi le logo en haut d’un README arrive comme une ligne de HTML brut imprimée en texte. Celui-ci met d’abord le document en page pour le papier, puis vous explique ce qu’il a dû faire pour y parvenir.
Des tableaux qui tiennent toujours sur la page
Un tableau Markdown ne précise pas la largeur des colonnes. La syntaxe n’a pas d’endroit pour cela, donc un convertisseur qui passe le tableau directement à un navigateur espère simplement qu’il rentre. Ici, chaque tableau est mesuré avant d’être dessiné et adapté au format de papier choisi. Un tableau de chemins de fichiers sur quatorze colonnes reste à l’intérieur des marges, les valeurs longues sont renvoyées à la ligne plutôt que de dépasser, et le résultat précise qu’il a fallu aller jusque-là.
L’autre moitié du problème survient à la deuxième page. Un long tableau laisse généralement sa ligne d’en-tête sur la première page, laissant au lecteur une grille de chiffres sans légende. Ici, l’en-tête se répète à chaque page atteinte par le tableau, et une ligne n’est jamais coupée en deux par un saut de page.
Du code qui survit aux marges
Le code encadré conserve sa coloration syntaxique et son étiquette de langage. Les lignes longues sont renvoyées à la ligne pour que l’on voie qu’elles ont été coupées, au lieu d’être tronquées à la fin de la page. Un PDF n’a pas de barre de défilement, donc une ligne qui ne revient pas à la ligne est une ligne dont le côté droit manque. Les blocs indentés, les encadrés sans langage et le code en ligne sont tous restitués tels quels.
Les images dans votre README
Un logo et une rangée de badges de compilation ne sont presque jamais écrits en Markdown. Il n’y a pas de moyen de centrer une image, donc les fichiers README utilisent du HTML brut à la place. Un convertisseur qui refuse d’interpréter le HTML l’échappe généralement au lieu de le supprimer, ce qui fait que le document s’ouvre sur une page d’étiquettes d’image imprimées en texte. Ici, le balisage est supprimé et les images ainsi que les mots à l’intérieur sont conservés, pour que le haut du document ressemble au haut du document.
Les images sont récupérées et intégrées dans le fichier au lieu d’être simplement liées, donc le PDF fonctionne hors ligne et fonctionnera encore dans un an. Si une image ne peut pas être récupérée, le résultat la compte et le signale au lieu de laisser discrètement un vide à la place.
Vos titres deviennent la navigation
Chaque PDF contient un arbre de signets construit à partir de vos propres titres, afin qu’un long document puisse être parcouru depuis la barre latérale plutôt qu’en faisant défiler. Demandez une page de sommaire et vous en obtenez une cliquable, à la profondeur de titre que vous souhaitez. Un seul titre tout en haut est lu comme le titre du document et omis de la liste, comme un titre de livre plutôt que de chapitre.
Les notes de bas de page restent des notes de bas de page, avec un repère en exposant et un lien de retour à la ligne lue. Les listes de tâches gardent leurs cases, cochées ou non. Les encadrés note, avertissement et astuce conservent leur barre colorée. Les métadonnées en haut du fichier sont traitées comme telles et ne figurent pas sur la page. Listes de définitions, barrés, citations imbriquées et trois niveaux de listes imbriquées sont tous rendus fidèlement.
Il vous dit ce qu’il n’a pas pu faire
Chaque conversion revient avec un court compte-rendu : nombre de pages, sens du texte, nombre de tableaux, de blocs de code, d’images intégrées et d’images non récupérées. Si une police manquait un caractère, il le liste. Si vous avez demandé une page de sommaire et que le document n’a pas de titres à y mettre, il le signale au lieu de vous donner un fichier avec une page blanche au début. Un convertisseur qui cache ses propres limites est la raison pour laquelle on cesse de leur faire confiance.
Des écritures qui ne sont pas latines
Les polices voyagent dans le PDF, donc un document s’ouvre de la même façon sur une machine qui n’en possède aucune. Le texte de droite à gauche est analysé bloc par bloc plutôt qu’une fois pour tout le fichier, ce qui compte car un document technique dans ce type d’écriture est souvent à moitié latin en nombre de caractères, rempli de chemins de fichiers et de noms de classes, et se lit tout de même de droite à gauche. Le code encadré est exclu de cette décision et toujours aligné de gauche à droite, et le reste de la mise en page est correctement inversé : puces, barres de citation et colonnes de tableau suivent le mouvement. Lorsqu’une écriture n’a pas d’italique, l’emphase est rendue par la graisse plutôt que par l’inclinaison de lettres qui n’ont jamais été dessinées pour l’être.
Ce qu’il ne fera pas
LaTeX n’est pas interprété. Un bloc entre des signes dollar est imprimé tel quel. Mermaid n’est pas dessiné non plus : un encadré marqué mermaid ressort comme un bloc de code étiqueté. Le chinois, le japonais et le coréen ne sont pas couverts par les polices de l’outil, donc les caractères de ces écritures sont signalés comme manquants plutôt que devinés. Ce sont des limites, pas des défauts, et elles sont précisées ici pour que personne ne les découvre après avoir envoyé son fichier.
La partie pratique
Téléversez depuis votre appareil, depuis Google Drive, ou en collant un lien vers un fichier. Les fichiers Markdown sont acceptés sous toutes leurs extensions habituelles, ainsi que le texte brut. Le papier peut être A3, A4, A5, Letter, Legal ou Tabloid, en portrait ou paysage, avec des marges étroites, normales ou larges. La numérotation des pages et la coloration syntaxique sont activées sauf si vous les désactivez. Envoyez un fichier et vous recevez un PDF ; envoyez-en plusieurs et ils arrivent sous forme de ZIP, ou en un seul PDF fusionné avec une numérotation continue si vous le demandez. Le texte reste du vrai texte, donc il peut être sélectionné, recherché et copié, plutôt que d’être aplati en image de mots.
Ce que vous obtenez
- Des tableaux qui restent dans les marges, avec la ligne d’en-tête répétée à chaque page atteinte
- Du code coloré avec les longues lignes renvoyées à la ligne au lieu d’être tronquées
- Des images intégrées dans le fichier, y compris celles écrites en HTML brut
- Un arbre de signets issu de vos titres, et une page de sommaire cliquable si vous le souhaitez
- Des polices embarquées dans le PDF, pour que le fichier ait le même aspect sur chaque machine
- Un compte-rendu écrit de tout ce que le convertisseur n’a pas pu faire, y compris les glyphes et images manquants
Et ensuite ?
Vous partez plutôt d’un fichier Word ? Word en PDF suit le même chemin vers le papier.
Assemblez le résultat avec le reste d’un rapport grâce à Fusionner PDF.
Puis réduisez la taille du fichier avant de l’envoyer avec Compresser PDF.