informatique:divers:manipuler_les_pdf_sous_linux

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
informatique:divers:manipuler_les_pdf_sous_linux [2023/02/28 20:50] – ↷ Liens modifiés en raison d'un déplacement. Cédric ABONNELinformatique:divers:manipuler_les_pdf_sous_linux [2023/02/28 21:02] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. Cédric ABONNEL
Ligne 1: Ligne 1:
 +====== Manipuler des PDF sous Linux ? ======
 +
 +===== Liste des programmes  =====
 +
 +**pdfshuffler** (PDF file merging, rearranging, and splitting)\\
 +Concaténer, séparer ou modifier l'ordre des pages des fichiers PDF.
 +
 +**pdfmod** (A simple application for modifying PDF documents)
 +
 +**poppler** (Command line utilities for converting PDF files)
 +
 +**pdftk** 
 +
 +**pdf chain**
 +
 +===== pdfmod =====
 +
 +==== Installer pdfmod ====
 +
 +{{ informatique:cfp:ico_pdfmod.png?direct|}}
 +
 +Executer l'installation :
 +<code>sudo dnf install pdfmod</code>
 +
 +Résultat :
 +<code>
 +Dernière vérification de l’expiration des métadonnées effectuée il y a 1:48:37 le sam. 29 juil. 2017 18:27:15 CEST.
 +Dépendances résolues.
 +================================================================================
 + Paquet               Architecture  Version                 Dépôt         Taille
 +================================================================================
 +Installation de :
 + pdfmod               x86_64        0.9.1-15.fc26           fedora        723 k
 +Installation des dépendances:
 + gnome-sharp          x86_64        2.24.2-13.fc26          fedora        315 k
 + gtk-sharp2           x86_64        2.12.42-2.fc26          fedora        702 k
 + hyena                x86_64        0.5-15.fc26             fedora        355 k
 + nunit                x86_64        3.6-2.fc26              fedora        369 k
 + poppler-sharp        x86_64        0.0.3-13.fc26           fedora         34 k
 +
 +Résumé de la transaction
 +================================================================================
 +Installer  6 Paquets
 +
 +Taille totale des téléchargements : 2.4 M
 +Taille des paquets installés : 8.4 M
 +Voulez-vous continuer ? [o/N] :o
 +Téléchargement des paquets :
 +(1/6): gnome-sharp-2.24.2-13.fc26.x86_64.rpm    190 kB/s | 315 kB     00:01    
 +(2/6): hyena-0.5-15.fc26.x86_64.rpm             217 kB/s | 355 kB     00:01    
 +(3/6): poppler-sharp-0.0.3-13.fc26.x86_64.rpm   158 kB/s |  34 kB     00:00    
 +(4/6): pdfmod-0.9.1-15.fc26.x86_64.rpm          206 kB/s | 723 kB     00:03    
 +(5/6): gtk-sharp2-2.12.42-2.fc26.x86_64.rpm     159 kB/s | 702 kB     00:04    
 +(6/6): nunit-3.6-2.fc26.x86_64.rpm              333 kB/s | 369 kB     00:01    
 +--------------------------------------------------------------------------------
 +Total                                           478 kB/s | 2.4 MB     00:05     
 +Test de la transaction en cours
 +La vérification de la transaction a réussi.
 +Lancement de la transaction de test
 +Transaction de test réussie.
 +Exécution de la transaction
 +  Préparation           :                                                   1/
 +  Installation de       : gtk-sharp2-2.12.42-2.fc26.x86_64                  1/6 
 +  Exécution du scriptlet: gtk-sharp2-2.12.42-2.fc26.x86_64                  1/6 
 +  Installation de       : gnome-sharp-2.24.2-13.fc26.x86_64                 2/
 +  Exécution du scriptlet: gnome-sharp-2.24.2-13.fc26.x86_64                 2/
 +  Installation de       : poppler-sharp-0.0.3-13.fc26.x86_64                3/6 
 +  Installation de       : nunit-3.6-2.fc26.x86_64                           4/
 +  Installation de       : hyena-0.5-15.fc26.x86_64                          5/6 
 +  Installation de       : pdfmod-0.9.1-15.fc26.x86_64                       6/
 +  Exécution du scriptlet: pdfmod-0.9.1-15.fc26.x86_64                       6/
 +  Vérification de       : pdfmod-0.9.1-15.fc26.x86_64                       1/
 +  Vérification de       : gnome-sharp-2.24.2-13.fc26.x86_64                 2/
 +  Vérification de       : gtk-sharp2-2.12.42-2.fc26.x86_64                  3/6 
 +  Vérification de       : hyena-0.5-15.fc26.x86_64                          4/6 
 +  Vérification de       : poppler-sharp-0.0.3-13.fc26.x86_64                5/6 
 +  Vérification de       : nunit-3.6-2.fc26.x86_64                           6/
 +
 +Installé :
 +  pdfmod.x86_64 0.9.1-15.fc26           gnome-sharp.x86_64 2.24.2-13.fc26      
 +  gtk-sharp2.x86_64 2.12.42-2.fc26      hyena.x86_64 0.5-15.fc26               
 +  nunit.x86_64 3.6-2.fc26               poppler-sharp.x86_64 0.0.3-13.fc26     
 +
 +Terminé !
 +</code>
 +
 +
 +===== pdf shuffler =====
 +
 +==== Installer pdf shuffler ====
 +
 +{{ informatique:cfp:ico_pdfshuffler.png?direct|}}
 +
 +Exécuter l'installation :
 +
 +<code>
 +sudo dnf install pdfshuffler
 +</code>
 +
 +
 +Résultat :
 +<code>
 +Dernière vérification de l’expiration des métadonnées effectuée il y a 1:59:55 le sam. 29 juil. 2017 18:27:15 CEST.
 +Dépendances résolues.
 +================================================================================
 + Paquet              Architecture   Version                Dépôt          Taille
 +================================================================================
 +Installation de :
 + pdfshuffler         noarch         0.6.0-10.fc26          fedora          69 k
 +Installation des dépendances:
 + pyPdf               noarch         1.13-13.fc26           fedora          73 k
 + pypoppler           x86_64         0.12.2-5.fc26          fedora          31 k
 +
 +Résumé de la transaction
 +================================================================================
 +Installer  3 Paquets
 +
 +Taille totale des téléchargements : 173 k
 +Taille des paquets installés : 636 k
 +Voulez-vous continuer ? [o/N] :o
 +Téléchargement des paquets :
 +(1/3): pypoppler-0.12.2-5.fc26.x86_64.rpm        19 kB/s |  31 kB     00:01    
 +(2/3): pdfshuffler-0.6.0-10.fc26.noarch.rpm      19 kB/s |  69 kB     00:03    
 +(3/3): pyPdf-1.13-13.fc26.noarch.rpm             15 kB/s |  73 kB     00:04    
 +--------------------------------------------------------------------------------
 +Total                                            29 kB/s | 173 kB     00:05     
 +Test de la transaction en cours
 +La vérification de la transaction a réussi.
 +Lancement de la transaction de test
 +Transaction de test réussie.
 +Exécution de la transaction
 +  Préparation           :                                                   1/
 +  Installation de       : pypoppler-0.12.2-5.fc26.x86_64                    1/3 
 +  Installation de       : pyPdf-1.13-13.fc26.noarch                         2/
 +  Installation de       : pdfshuffler-0.6.0-10.fc26.noarch                  3/3 
 +  Exécution du scriptlet: pdfshuffler-0.6.0-10.fc26.noarch                  3/3 
 +  Vérification de       : pdfshuffler-0.6.0-10.fc26.noarch                  1/3 
 +  Vérification de       : pyPdf-1.13-13.fc26.noarch                         2/
 +  Vérification de       : pypoppler-0.12.2-5.fc26.x86_64                    3/3 
 +
 +Installé :
 +  pdfshuffler.noarch 0.6.0-10.fc26           pyPdf.noarch 1.13-13.fc26          
 +  pypoppler.x86_64 0.12.2-5.fc26            
 +
 +Terminé !
 +
 +</code>
 +
 +==== Utiliser pdf shuffler ====
 +
 +{{ informatique:cfp:pdfshuffler_capture.png?direct |}}
 +
 +
 +===== Poppler =====
 +
 +==== Installer poppler ====
 +
 +{{ informatique:cfp:ico_poppler.gif?direct|}}
 +
 +Exécuter l'installation :
 +
 +<code>
 +sudo dnf install poppler-utils
 +</code>
 +
 +==== Utiliser poppler ====
 +
 +**poppler-utils** est un collection d'outils qui s'appuie sur l'API **poppler** pour éditer et modifier les fichiers PDF.
 +  * **pdfdetach** extract embedded documents from a PDF
 +  * **pdffonts** lists the fonts used in a PDF
 +  * **pdfimages** extract all embedded images at native resolution from a PDF
 +  * **pdfinfo** list all infos of a PDF
 +  * **pdfseparate** extract single pages from a PDF
 +  * **pdftocairo** convert single pages from a PDF to vector or bitmap formats using cairo
 +  * **pdftohtml** convert PDF to HTML format retaining formatting
 +  * **pdftoppm** convert a PDF page to a bitmap
 +  * **pdftops** convert PDF to printable PS format
 +  * **pdftotext** extract all text from PDF
 +  * **pdfunite** merges several PDF
 +
 +The 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**. 
 +
 +**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:
 +
 +<code>
 +pdfseparate ColoringBook.pdf ColoringBook-page_%d.pdf
 +</code>
 +
 +To export a range of pages — say just pages 3,4,5,6,7,8 and 9 of a PDF — use the command:
 +
 +<code>
 +pdfseparate -f 3 -l 9 ColoringBook.pdf ColoringBook-page_%d.pdf
 +</code>
 +
 +Finally, 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:
 +
 +<code>
 +pdfunite ColoringBook-page_3.pdf ColoringBook-page_7.pdf NewColoringBook.pdf
 +</code>
 +
 +  
 +===== PDFTK =====
 +
 +==== Installer le programme PDFTK ====
 +<code>yum install pdftk</code>
 +
 +==== Utiliser PDFTK ====
 +
 +Assembler (merge, join) plusieurs fichiers PDF en un seul nouveau fichier PDF
 +Syntaxe
 +<code>pdftk P1 cat output P2</code>
 +
 +  * P1 - source - correspond à la liste de fichiers à assembler
 +  * P2 - destination - correspond au fichier créé avec les documents PDF assemblés.
 +
 +==== Exemple ====
 +
 +Assembler in1.pdf et in2.pdf dans un nouveau fichier out1.pdf :
 +<code>pdftk in1.pdf in2.pdf cat output out2.pdf</code>
 +
 +==== Remarque ====
 +
 +Si PDFMERGE est installé sur votre poste, il rempli aussi cette fonctionnalité :
 +<code>pdfmerge file1.pdf file2.pdf... fileN.pdf outfile.pdf</code>
 +
 +
 +===== PDF Chain =====
 +
 +PDF Chain est une interface graphique pour PDF Toolkit (pdftk). Cette interface supporte toutes les commandes disponibles dans PDF Toolkit.
 +
 +
 +===== ImageMagick =====
 +
 +==== Installer ImageMagick ====
 +
 +> Fedora 30
 +
 +Sous **Fedora 30**, il suffit d’exécuter **dnf** pour installer le paquet présent dans des dépots **fedora** et ** updates **.
 +
 +  $ sudo dnf install ImageMagick
 +  
 +Les dépendances à d'autres paquets sont les suivantes :
 +
 +   provider: ImageMagick-libs-1:6.9.10.75-1.fc30.x86_64
 +   provider: glibc-2.29-27.fc30.x86_64
 +   provider: glibc-2.29-27.fc30.i686
 +
 +
 +===== - La compil' des questions =====
 +
 +
 +==== - Recompiler un fichier PDF (pdftocairo et popple) ====
 +
 +
 +Dans un dossier vide, copier le fichier PDF à traiter. Se placer dans ce dossier avec la commande ''cd'' puis exécuter les commandes suivantes.
 +
 +## Convertir le fichier PDF en plusieurs fichiers JPEG avec **poppler** :
 +
 +  $ pdftocairo `ls -v *.jpg` -jpeg
 +
 +## Convertir les fichiers JPEG et les assembler en un fichier PDF avec **ImageMagick** :
 +
 +  $ convert `ls -v *.jpg` "final.pdf"
 +
 +## Effacer les fichiers temporaires :
 +
 +  $ rm *.jpg
 +  
 +Le fichier ''final.pdf'' est prêt.
 +
 +
 +==== - Recompiler un fichier PDF (gs via ps) ====
 +
 +Voici une méthode avec les prorgrammes **pdf2ps** et **ps2pdf** en ligne de commande. Ces programmes sont intégrés au paquets **GhostScript**.
 +
 +On considère que l'on souhaite transformer le fichier nommé **livre.pdf**. Le résultat sera dans le fichier **livre-opti.pdf**
 +
 +<code>
 +pdf2ps livre.pdf inter.ps
 +ps2pdf -dPDFSETTINGS=/prepress inter.ps livre-opti.pdf 
 +</code>
 +
 +L'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**
 +
 +
 +==== - Recompiler un fichier PDF (gs) ====
 +
 +Voici 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.
 +
 +On considère que l'on souhaite transformer le fichier nommé **livre.pdf**. Le résultat sera dans le fichier **livre-opti.pdf**
 +
 +<code>
 +gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile=livre-opti.pdf livre.pdf
 +</code>
 +
 +L'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**
 +
 +==== - Extraire le texte présent dans un PDF ====
 +
 +Votre fichier PDF peut contenir un ensemble de textes. Celui-ci peut être extrait directement en fichier texte.
 +Voici une méthode avec le prorgramme **pdftotext** en ligne de commande. Ce programme fait partie de la suite **poppler-utils**.
 +
 +On 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**
 +
 +<code>
 +pdftotext livre.pdf livre.txt
 +</code>
 +
 +
 +==== - Deviner le texte d'un fichier PDF ====
 +
 +Si 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.
 +
 +Ce programme peut être installé avec la commande :
 +  sudo apt install ocrmypdf
 +
 +On 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**
 +
 +<code>
 +ocrmypdf livre.pdf livre.txt -l fra
 +</code>
 +
 +Le dictionnaire OCR s'appuie sur le programme **tesseract**. Il faut installer le dictionnaire que l'on souhaite utiliser par la suite :
 +  sudo apt install tesseract-ocr-fra
 +
 +
 +
  
  • informatique/divers/manipuler_les_pdf_sous_linux.txt
  • Dernière modification : 2023/02/28 21:02
  • de Cédric ABONNEL