mygems

Comment convertir un CSV en PDF

Un CSV n'a pas de page et un PDF n'est fait que de pages : voilà pourquoi les colonnes débordent. Décidez ce qui entre dans le PDF avant de convertir.

Par uos ·

Si c'est pénible, c'est qu'un CSV n'a pas de page. C'est une grille sans limite, alors qu'un PDF est une pile de rectangles fixes. Toute conversion doit décider où couper, et tous les outils qui s'en acquittent mal prennent la même décision : couper là où le papier s'arrête, puis laisser les colonnes restantes tomber par-dessus le bord droit.

La question utile n'est donc pas « comment convertir », puisque presque n'importe quoi produira un fichier, mais quelles colonnes et quelles lignes vont réellement dans le PDF. Répondez d'abord à cela et la conversion devient triviale.

Avant de convertir : réduire le fichier

Un PDF de 40 000 lignes n'est pas un document, c'est une erreur avec un poids en Mo. Personne n'ouvre la page 612. Si le destinataire a besoin de chaque ligne, envoyez-lui le CSV.

Le PDF est le bon format quand le résultat doit être lu plutôt que traité, ce qui veut dire qu'il doit être :

  • Filtré. Les lignes qui concernent ce destinataire, pas l'export entier.
  • Resserré. Six à dix colonnes tiennent lisiblement sur une page A4 en paysage. Quinze, non, quelle que soit la taille de police qu'une personne acceptera de lire.
  • Souvent synthétisé. Un GROUP BY qui ramène 40 000 lignes à 30 est généralement le document qu'on voulait vraiment.

Faire cela avant la conversion, c'est toute la différence entre un rapport utilisable et 600 pages de grille tronquée.

Orientation et largeur des colonnes

Deux réglages décident de la lisibilité du résultat, et tous deux sont mauvais par défaut.

Paysage, toujours, sauf si le fichier a moins de cinq colonnes. En portrait, l'A4 accueille environ six colonnes étroites ; en paysage, dix.

Ajuster à la largeur, pas à un pourcentage. Tous les tableurs ont cette option et presque personne ne la trouve : dans Excel, c'est Mise en page → Mise à l'échelle → Largeur : 1 page. Sans elle, les colonnes à partir de la onzième sont imprimées sur leurs propres pages après la dernière ligne, et c'est ainsi qu'on obtient un PDF de 40 pages pour un tableau de 12.

Ensuite, deux réglages à faire une fois pour toutes :

  • Répéter la ligne d'en-tête sur chaque page. Excel l'appelle Imprimer les titres → Lignes à répéter en haut. Un tableau dont l'en-tête n'apparaît qu'en page un est illisible dès la page deux.
  • Activer le quadrillage. Il est désactivé par défaut à l'impression, et un tableau large sans quadrillage est très difficile à lire en travers.

Les méthodes, selon la situation

Depuis un tableur, sur ordinateur

Ouvrez le CSV, appliquez les réglages ci-dessus, puis Imprimer → Enregistrer au format PDF. C'est le rendu le plus soigné de toutes les méthodes présentées ici, et la seule où l'on peut ajouter un titre et des numéros de page sans écrire de code.

Attention toutefois à l'import : en ouvrant un CSV, Excel convertit tout ce qui ressemble à une date, et un PDF garde cette erreur de façon permanente. Une colonne de numéros de commande qui arrive sous la forme 43831 valait 2020-01-01 dans le fichier. Importez en texte si les données contiennent des identifiants, des zéros initiaux ou de longs nombres.

En ligne de commande

Pour un tableau simple et correct, sans choix de mise en forme :

csvlook data.csv | enscript -B -f Courier8 -o - | ps2pdf - out.pdf

Plus pratique si vous voulez contrôler la mise en page : passer par HTML. Chaque système dispose d'un navigateur sans interface, et les navigateurs paginent très bien les tableaux :

csvtomd data.csv > table.md
pandoc table.md -o out.pdf

L'avantage de la voie HTML : @page { size: A4 landscape } et thead { display: table-header-group } dans une feuille de style donnent exactement les deux choses que les tableurs enfouissent dans des boîtes de dialogue, à savoir l'orientation et la répétition des en-têtes.

Depuis un téléphone

C'est là que la conversion se présente réellement : le fichier est dans votre messagerie, la personne qui en a besoin veut quelque chose de lisible à l'écran sans application de tableur, et vous n'êtes pas près d'un ordinateur.

L'essentiel reste le même qu'ailleurs : filtrer et resserrer avant d'exporter. Un PDF au format téléphone avec cinq colonnes et quarante lignes est un bon livrable. Un PDF au format téléphone du fichier entier, non.

CSV File Viewer - Smart CSViPhone et iPad · Android

Convertit directement en PDF, avec les colonnes et la mise en forme de l'export choisies plutôt qu'héritées. L'éditeur de filtres visuel ou une requête SQL réduit d'abord le fichier aux lignes qui méritent d'être imprimées, et c'est cette étape qui décide si le PDF est lisible.

Ce que ça fait

Quand le PDF est la mauvaise réponse

Trois cas, qui couvrent l'essentiel des demandes.

« Pour qu'ils puissent l'ouvrir sans Excel. » Ils le peuvent déjà : un CSV s'ouvre dans le Bloc-notes, TextEdit, n'importe quel navigateur, Google Sheets, Numbers et sur tous les téléphones. Si l'on craint un mauvais rendu, la solution est généralement un fichier plus étroit, pas un autre format.

« Pour qu'ils ne puissent pas le modifier. » Un PDF n'est pas en lecture seule en un sens qui compte. Il se modifie et s'extrait sans difficulté. Si l'exigence est l'intégrité, la réponse est une signature ou une somme de contrôle, pas un format de fichier.

« Pour qu'ils puissent utiliser les données. » Le PDF est le pire conteneur possible pour des données tabulaires, et les en extraire à nouveau est une tâche autour de laquelle s'est bâtie toute une industrie. Si le destinataire va faire quoi que ce soit avec les chiffres, envoyez le CSV, accompagné d'un PDF de synthèse.

Les vrais cas d'usage du PDF : quelque chose à imprimer, à archiver avec une pagination figée, à joindre à un dossier officiel, ou dont la mise en page doit survivre à un transfert.

Lui donner l'allure d'un rapport

Quatre points, classés selon leur effet sur le résultat :

  1. Nombres alignés à droite, texte aligné à gauche. Rien d'autre n'améliore autant la lisibilité, et c'est un seul réglage.
  2. Fixer le nombre de décimales. Une colonne qui mélange 1.5 et 1.4999999 fait négligé, et c'est généralement un artefact de virgule flottante plutôt qu'une vraie précision.
  3. Ajouter un en-tête et un pied de page. Titre, date couverte par les données (pas la date d'impression) et numéros de page.
  4. Dire ce qu'est le fichier. Une ligne en haut : la source, le filtre appliqué, le nombre de lignes. Six mois plus tard, c'est ce qui distingue un document d'un mystère.
CSV Editor - Smart CSViPhone et iPad

Quand le fichier doit être corrigé avant l'envoi, qu'il s'agisse d'une colonne à arrondir, d'un total à calculer ou de lignes à supprimer, les colonnes de formules s'en chargent sur le téléphone. Le résultat est enregistré dans le CSV, de sorte que les chiffres restent identiques quel que soit l'outil d'impression.

Ce que ça fait

Des graphiques plutôt que des tableaux

Une question à se poser avant de convertir quoi que ce soit : le destinataire veut-il les lignes, ou la forme ? Une tendance sur douze mois est une courbe, et un tableau de douze mois est une courbe de moindre qualité qui prend plus de temps à lire.

La meilleure version de ce document est généralement un graphique en première page avec le tableau synthétique derrière. C'est l'affaire de deux minutes dans n'importe quel outil capable de produire les deux, et bien plus utile que l'un ou l'autre seul.

Questions

Comment convertir un fichier CSV en PDF ?
Ouvrez-le dans un tableur, choisissez l'orientation paysage et « ajuster à la largeur : 1 page », activez la répétition des lignes d'en-tête et le quadrillage, puis imprimez au format PDF. En ligne de commande, convertissez en HTML ou en Markdown et laissez un navigateur ou pandoc paginer. Sur un téléphone, une application qui exporte directement en PDF le fait en quelques appuis. Dans les trois cas, filtrer le fichier au préalable est ce qui décide si le résultat est lisible.
Pourquoi mes colonnes sont-elles coupées dans le PDF ?
Parce que l'échelle d'impression est par défaut de 100 % : tout ce qui dépasse la largeur de la page est imprimé sur un jeu de pages distinct après la dernière ligne au lieu d'être réduit. Réglez « ajuster à la largeur : 1 page » ; dans Excel, cela se trouve sous Mise en page → Mise à l'échelle. Si le tableau reste illisible à cette taille, le fichier a trop de colonnes pour une page et il faut le resserrer plutôt que le réduire.
Comment répéter la ligne d'en-tête sur chaque page du PDF ?
Dans Excel, c'est Mise en page → Imprimer les titres → « Lignes à répéter en haut », réglé sur la ligne d'en-tête. Dans Google Sheets, c'est Imprimer → En-têtes et pieds de page → Répéter les lignes figées. Dans une conversion passant par HTML, placer l'en-tête dans un `thead` et définir `display: table-header-group` produit le même effet.
Dois-je envoyer un PDF ou le CSV ?
Envoyez le CSV si le destinataire va faire quoi que ce soit avec les chiffres, car le PDF est le conteneur dont il est le plus difficile de récupérer des données tabulaires. Envoyez un PDF quand le résultat est destiné à être lu, imprimé ou archivé avec une pagination figée. Un PDF ne rend pas les données non modifiables ; ce n'est donc pas la réponse si le souci est l'intégrité.
Combien de lignes mettre dans un export CSV vers PDF ?
Aussi peu que nécessaire pour répondre à la question. Un PDF de dizaines de milliers de lignes n'est pas un document que quelqu'un lit au-delà de la première page. Filtrez sur les lignes pertinentes, ou synthétisez avec un GROUP BY. Trente lignes de synthèse et un graphique sont généralement ce qu'on voulait vraiment, et le fichier complet fait une meilleure pièce jointe sous forme de CSV d'origine.
Pourquoi mes dates et mes identifiants ont-ils changé dans le PDF ?
Le tableur les a convertis à l'import, avant même que le PDF existe. Les numéros de commande deviennent des dates sérielles, les longs nombres passent en notation scientifique et les zéros initiaux disparaissent. Importez le CSV en texte plutôt que de laisser détecter les colonnes automatiquement, ou convertissez avec un outil qui ne réinterprète pas les valeurs. Le PDF enregistre de façon permanente toute erreur survenue en amont.

uos — Je développe Smart CSV Viewer, qui exporte des PDF ; la question de ce qui doit ou non y figurer revient donc régulièrement.