Files
varlog/_cache/articles/bd34b650-8713-4321-93df-fe2042d8e68c.json
T
2026-05-15 10:37:48 +02:00

1 line
13 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"uuid":"bd34b650-8713-4321-93df-fe2042d8e68c","slug":"manipuler-les-pdf-sous-linux","title":"Manipuler des PDF sous Linux ?","author":"cedric@abonnel.fr","published":true,"published_at":"2023-02-28 20:02:47","created_at":"2023-02-28 20:02:47","updated_at":"2023-02-28 20:02:47","revisions":[],"cover":"","files_meta":[],"external_links":[],"seo_title":"","seo_description":"","og_image":"","category":"Informatique","content":"# Manipuler des PDF sous Linux ?\n\n## Liste des programmes\n**pdfshuffler** (PDF file merging, rearranging, and splitting)\\\\\nConcaténer, séparer ou modifier l'ordre des pages des fichiers PDF.\n\n**pdfmod** (A simple application for modifying PDF documents)\n\n**poppler** (Command line utilities for converting PDF files)\n\n**pdftk** \n\n**pdf chain**\n\n## pdfmod\n### Installer pdfmod\n![](ico_pdfmod.png)\n\nExecuter l'installation :\n```\nsudo dnf install pdfmod\n```\n\nRésultat :\n```\nDernière vérification de lexpiration des métadonnées effectuée il y a 1:48:37 le sam. 29 juil. 2017 18:27:15 CEST.\nDépendances résolues.\n# ====================================================================\n Paquet Architecture Version Dépôt Taille\n# ====================================================================\nInstallation de :\n pdfmod x86_64 0.9.1-15.fc26 fedora 723 k\nInstallation des dépendances:\n gnome-sharp x86_64 2.24.2-13.fc26 fedora 315 k\n gtk-sharp2 x86_64 2.12.42-2.fc26 fedora 702 k\n hyena x86_64 0.5-15.fc26 fedora 355 k\n nunit x86_64 3.6-2.fc26 fedora 369 k\n poppler-sharp x86_64 0.0.3-13.fc26 fedora 34 k\n\nRésumé de la transaction\n# ====================================================================\nInstaller 6 Paquets\n\nTaille totale des téléchargements : 2.4 M\nTaille des paquets installés : 8.4 M\nVoulez-vous continuer ? [o/N] :o\nTéléchargement des paquets :\n(1/6): gnome-sharp-2.24.2-13.fc26.x86_64.rpm 190 kB/s | 315 kB 00:01 \n(2/6): hyena-0.5-15.fc26.x86_64.rpm 217 kB/s | 355 kB 00:01 \n(3/6): poppler-sharp-0.0.3-13.fc26.x86_64.rpm 158 kB/s | 34 kB 00:00 \n(4/6): pdfmod-0.9.1-15.fc26.x86_64.rpm 206 kB/s | 723 kB 00:03 \n(5/6): gtk-sharp2-2.12.42-2.fc26.x86_64.rpm 159 kB/s | 702 kB 00:04 \n(6/6): nunit-3.6-2.fc26.x86_64.rpm 333 kB/s | 369 kB 00:01 \n---\nTotal 478 kB/s | 2.4 MB 00:05 \nTest de la transaction en cours\nLa vérification de la transaction a réussi.\nLancement de la transaction de test\nTransaction de test réussie.\nExécution de la transaction\n Préparation : 1/1 \n Installation de : gtk-sharp2-2.12.42-2.fc26.x86_64 1/6 \n Exécution du scriptlet: gtk-sharp2-2.12.42-2.fc26.x86_64 1/6 \n Installation de : gnome-sharp-2.24.2-13.fc26.x86_64 2/6 \n Exécution du scriptlet: gnome-sharp-2.24.2-13.fc26.x86_64 2/6 \n Installation de : poppler-sharp-0.0.3-13.fc26.x86_64 3/6 \n Installation de : nunit-3.6-2.fc26.x86_64 4/6 \n Installation de : hyena-0.5-15.fc26.x86_64 5/6 \n Installation de : pdfmod-0.9.1-15.fc26.x86_64 6/6 \n Exécution du scriptlet: pdfmod-0.9.1-15.fc26.x86_64 6/6 \n Vérification de : pdfmod-0.9.1-15.fc26.x86_64 1/6 \n Vérification de : gnome-sharp-2.24.2-13.fc26.x86_64 2/6 \n Vérification de : gtk-sharp2-2.12.42-2.fc26.x86_64 3/6 \n Vérification de : hyena-0.5-15.fc26.x86_64 4/6 \n Vérification de : poppler-sharp-0.0.3-13.fc26.x86_64 5/6 \n Vérification de : nunit-3.6-2.fc26.x86_64 6/6 \n\nInstallé :\n pdfmod.x86_64 0.9.1-15.fc26 gnome-sharp.x86_64 2.24.2-13.fc26 \n gtk-sharp2.x86_64 2.12.42-2.fc26 hyena.x86_64 0.5-15.fc26 \n nunit.x86_64 3.6-2.fc26 poppler-sharp.x86_64 0.0.3-13.fc26 \n\nTerminé !\n```\n\n## pdf shuffler\n### Installer pdf shuffler\n![](ico_pdfshuffler.png)\n\nExécuter l'installation :\n\n```\nsudo dnf install pdfshuffler\n```\n\nRésultat :\n```\nDernière vérification de lexpiration des métadonnées effectuée il y a 1:59:55 le sam. 29 juil. 2017 18:27:15 CEST.\nDépendances résolues.\n# ====================================================================\n Paquet Architecture Version Dépôt Taille\n# ====================================================================\nInstallation de :\n pdfshuffler noarch 0.6.0-10.fc26 fedora 69 k\nInstallation des dépendances:\n pyPdf noarch 1.13-13.fc26 fedora 73 k\n pypoppler x86_64 0.12.2-5.fc26 fedora 31 k\n\nRésumé de la transaction\n# ====================================================================\nInstaller 3 Paquets\n\nTaille totale des téléchargements : 173 k\nTaille des paquets installés : 636 k\nVoulez-vous continuer ? [o/N] :o\nTéléchargement des paquets :\n(1/3): pypoppler-0.12.2-5.fc26.x86_64.rpm 19 kB/s | 31 kB 00:01 \n(2/3): pdfshuffler-0.6.0-10.fc26.noarch.rpm 19 kB/s | 69 kB 00:03 \n(3/3): pyPdf-1.13-13.fc26.noarch.rpm 15 kB/s | 73 kB 00:04 \n---\nTotal 29 kB/s | 173 kB 00:05 \nTest de la transaction en cours\nLa vérification de la transaction a réussi.\nLancement de la transaction de test\nTransaction de test réussie.\nExécution de la transaction\n Préparation : 1/1 \n Installation de : pypoppler-0.12.2-5.fc26.x86_64 1/3 \n Installation de : pyPdf-1.13-13.fc26.noarch 2/3 \n Installation de : pdfshuffler-0.6.0-10.fc26.noarch 3/3 \n Exécution du scriptlet: pdfshuffler-0.6.0-10.fc26.noarch 3/3 \n Vérification de : pdfshuffler-0.6.0-10.fc26.noarch 1/3 \n Vérification de : pyPdf-1.13-13.fc26.noarch 2/3 \n Vérification de : pypoppler-0.12.2-5.fc26.x86_64 3/3 \n\nInstallé :\n pdfshuffler.noarch 0.6.0-10.fc26 pyPdf.noarch 1.13-13.fc26 \n pypoppler.x86_64 0.12.2-5.fc26 \n\nTerminé !\n```\n\n### Utiliser pdf shuffler\n![](pdfshuffler_capture.png)\n\n## Poppler\n### Installer poppler\n![](ico_poppler.gif)\n\nExécuter l'installation :\n\n```\nsudo dnf install poppler-utils\n```\n\n### Utiliser poppler\n**poppler-utils** est un collection d'outils qui s'appuie sur l'API **poppler** pour éditer et modifier les fichiers PDF.\n- **pdfdetach** extract embedded documents from a PDF\n- **pdffonts** lists the fonts used in a PDF\n- **pdfimages** extract all embedded images at native resolution from a PDF\n- **pdfinfo** list all infos of a PDF\n- **pdfseparate** extract single pages from a PDF\n- **pdftocairo** convert single pages from a PDF to vector or bitmap formats using cairo\n- **pdftohtml** convert PDF to HTML format retaining formatting\n- **pdftoppm** convert a PDF page to a bitmap\n- **pdftops** convert PDF to printable PS format\n- **pdftotext** extract all text from PDF\n- **pdfunite** merges several PDF\n\nThe popper-utils package provides several different commands for interacting with and modifying PDF files. However, the two commands that help us the most here are **pdfseparate** and **pdfunite**. \n\n**pdfseparate** extracts pages into multiple PDFs that we can later merge together with **pdfunite**. To extract all the pages of a document into individual files, use:\n\n```\npdfseparate ColoringBook.pdf ColoringBook-page_%d.pdf\n```\n\nTo export a range of pages — say just pages 3,4,5,6,7,8 and 9 of a PDF — use the command:\n\n```\npdfseparate -f 3 -l 9 ColoringBook.pdf ColoringBook-page_%d.pdf\n```\n\nFinally, after using **pdfseparate**, if we wanted to create a new document (NewColoringBook.pdf) with ColoringBook-page_3.pdf and ColoringBook-page_3.pdf we could use the following **pdfunite** command:\n\n```\npdfunite ColoringBook-page_3.pdf ColoringBook-page_7.pdf NewColoringBook.pdf\n```\n\n \n## PDFTK\n### Installer le programme PDFTK\n```\nyum install pdftk\n```\n\n### Utiliser PDFTK\nAssembler (merge, join) plusieurs fichiers PDF en un seul nouveau fichier PDF\nSyntaxe\n```\npdftk P1 cat output P2\n```\n\n- P1 - source - correspond à la liste de fichiers à assembler\n- P2 - destination - correspond au fichier créé avec les documents PDF assemblés.\n\n### Exemple\nAssembler in1.pdf et in2.pdf dans un nouveau fichier out1.pdf :\n```\npdftk in1.pdf in2.pdf cat output out2.pdf\n```\n\n### Remarque\nSi PDFMERGE est installé sur votre poste, il rempli aussi cette fonctionnalité :\n```\npdfmerge file1.pdf file2.pdf... fileN.pdf outfile.pdf\n```\n\n## PDF Chain\nPDF Chain est une interface graphique pour PDF Toolkit (pdftk). Cette interface supporte toutes les commandes disponibles dans PDF Toolkit.\n\n## ImageMagick\n### Installer ImageMagick\n> Fedora 30\n\nSous **Fedora 30**, il suffit dexécuter **dnf** pour installer le paquet présent dans des dépots **fedora** et ** updates **.\n\n $ sudo dnf install ImageMagick\n \nLes dépendances à d'autres paquets sont les suivantes :\n\n provider: ImageMagick-libs-1:6.9.10.75-1.fc30.x86_64\n provider: glibc-2.29-27.fc30.x86_64\n provider: glibc-2.29-27.fc30.i686\n\n## - La compil' des questions\n### - Recompiler un fichier PDF (pdftocairo et popple)\nDans un dossier vide, copier le fichier PDF à traiter. Se placer dans ce dossier avec la commande `cd` puis exécuter les commandes suivantes.\n\n## Convertir le fichier PDF en plusieurs fichiers JPEG avec **poppler** :\n\n $ pdftocairo `ls -v *.jpg` -jpeg\n\n## Convertir les fichiers JPEG et les assembler en un fichier PDF avec **ImageMagick** :\n\n $ convert `ls -v *.jpg` \"final.pdf\"\n\n## Effacer les fichiers temporaires :\n\n $ rm *.jpg\n \nLe fichier `final.pdf` est prêt.\n\n### - Recompiler un fichier PDF (gs via ps)\nVoici une méthode avec les prorgrammes **pdf2ps** et **ps2pdf** en ligne de commande. Ces programmes sont intégrés au paquets **GhostScript**.\n\nOn considère que l'on souhaite transformer le fichier nommé **livre.pdf**. Le résultat sera dans le fichier **livre-opti.pdf**\n\n```\npdf2ps livre.pdf inter.ps\nps2pdf -dPDFSETTINGS=/prepress inter.ps livre-opti.pdf\n```\n\nL'option **dPDFSETTINGS** défini la qualité d'image issue du fichier PDF. Elle peut prendre les valeurs (du moins bon au meilleur résultat) **/screen**, **/default**, **/ebook**, **/printer**, **/prepress**\n\n### - Recompiler un fichier PDF (gs)\nVoici une méthode avec les prorgrammes **gs** en ligne de commande. Le programme **gs** s'appelle **GhostScript** qui est un interpreteur de langage PDF et PS.\n\nOn considère que l'on souhaite transformer le fichier nommé **livre.pdf**. Le résultat sera dans le fichier **livre-opti.pdf**\n\n```\ngs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile=livre-opti.pdf livre.pdf\n```\n\nL'option **dPDFSETTINGS** défini la qualité d'image issue du fichier PDF. Elle peut prendre les valeurs (du moins bon au meilleur résultat) **/screen**, **/default**, **/ebook**, **/printer**, **/prepress**\n\n### - Extraire le texte présent dans un PDF\nVotre fichier PDF peut contenir un ensemble de textes. Celui-ci peut être extrait directement en fichier texte.\nVoici une méthode avec le prorgramme **pdftotext** en ligne de commande. Ce programme fait partie de la suite **poppler-utils**.\n\nOn considère que l'on souhaite extraire le texte présent dans le fichier nommé **livre.pdf**. Le résultat sera dans le fichier **livre.txt**\n\n```\npdftotext livre.pdf livre.txt\n```\n\n### - Deviner le texte d'un fichier PDF\nSi votre fichier PDF ne comporte que des images, il est nécessaire de `deviner` le texte présent. Il s'agit de la méthode OCR. Voici une méthode avec le prorgramme **ocrmypdf** en ligne de commande.\n\nCe programme peut être installé avec la commande :\n sudo apt install ocrmypdf\n\nOn considère que l'on souhaite extraire le texte présent dans le fichier nommé **livre.pdf**. Le résultat sera dans le fichier **livre.txt**\n\n```\nocrmypdf livre.pdf livre.txt -l fra\n```\n\nLe dictionnaire OCR s'appuie sur le programme **tesseract**. Il faut installer le dictionnaire que l'on souhaite utiliser par la suite :\n sudo apt install tesseract-ocr-fra","featured":false,"tags":[]}