<h2>But de ce document</h2>
<p class="spip">Ce mémo fait l’inventaire des différents programmes disponibles sous Linux permettant de lire ou modifier des fichiers PDF.</p>

<p class="spip">Le format PDF (proche du format Postcript) est de plus en plus utilisé dans l’échange de documents.</p>

<h2>Lire des fichiers PDF</h2>
<h3>Acrobat Reader 7.0.5</h3>
<p class="spip">Ce programme gratuit mais non libre est développé par la société Adobe qui est à l’origine du format PDF.  La version disponible sous Linux est la même que celle disponible sous Windows ce qui a pour avantage de ne pas perturber les utilisateurs migrants ;-)</p>

<p class="spip">Après téléchargement à partir du site officiel, ce programme s’installe très facilement à la Windows en quelques clics.</p>

<p class="spip">Ce programme utilise la bibliothèque graphique GTK+ de Gnome.</p>

<p class="spip">Avec Acrobat, le rendu des fichiers PDF est toujours parfait contrairement à ses concurrents libres qui souffrent encore de quelques petits défauts.</p>

<h3>KPDF 0.5.2</h3>
<p class="spip"><strong class="spip">KPDF </strong>est le lecteur PDF par défaut de KDE.</p>

<p class="spip">Ce programme est quasiment aussi évolué qu’Acrobat Reader.</p>

<p class="spip"><strong class="spip">KPDF</strong> est à ma connaissance le logiciel libre le plus efficace pour lire des PDF. Il peut donc parfaitement remplacer Acrobat Reader dans la grande majorité des cas.</p>

<p class="spip">Cependant il a encore quelques petits défauts par rapport à Acrobat Reader :
<br /></p>
<li> Il ne sais pas ajuster un document à la zone imprimable. Donc dans certains cas, les bords du documents sont tronqués.
<br /><li> Il ne sait pas gérer la transparence des images png. Cela peut poser des problèmes d’affichage si le document en comporte, mais c’est encore très rare.
<br /><li> Il ne sait pas faire une rotation du document (utile pour les images ou les plans)
<br /><li> Il ne gère pas correctement le lissage des caractères et des courbes contrairement à Acrobat Reader et même gpdf (Problème rencontré avec des plans de CAO complexe au format A0).
<p class="spip">Mais il a également plusieurs avantages :
<br /></p>
<li> Il est beaucoup plus léger en mémoire et plus rapide à se lancer
<br /><li> Il est parfaitement intégré à KDE et Konqueror ce qui facilite la lecture de fichiers PDF.
<br /><li> Il est possible de lancer un diaporama avec défilement automatique des diapos et effet de transitions.
<h3>KghostView 0.2</h3>
<p class="spip">KghostView est un autre lecteur PDF pour KDE et il correspond au portage sous KDE de Ghostview.</p>

<p class="spip">Il offre quasiment les mêmes fonctionnalités que KPDF. Il est cependant possible avec KghostView contrairement à KPDF de déplacer le zoom depuis la fenêtre miniature de la page.</p>

<p class="spip"><strong class="spip">Remarque </strong> :  Ce programme est encore jeune et buggué, car je n’ai pas réussi à ouvrir certains PDF alors qu’ils s’ouvraient sans problème avec les autres lecteurs.</p>

<h3>GPDF 2.10</h3>
<p class="spip"><strong class="spip">GPDF</strong> est un lecteur PDF pour Gnome, mais fonctionnant également très bien sous KDE</p>

<p class="spip">J’ai trouvé plusieurs avantages à <strong class="spip">GPDF</strong> par rapport à <strong class="spip">KDPF </strong> :
<br /></p>
<li> Possibilité de modifier le zoom à partir de l’affichage de la page en miniature
<br /><li> Lissage parfait des polices et des contours
<h3>EVINCE 0.4</h3>
<p class="spip">Evince est un lecteur de fichiers universel pour Gnome. Il a quasiment la même interface que GPDF, mais utilise le même moteur d’affichage que KPDF. Ce moteur est « <strong class="spip"> poppler </strong> » (<a href="http://poppler.freedesktop.org/" class="spip_out">http://poppler.freedesktop.org/</a>). C’est un fork de xpdf à la base.</p>

<p class="spip">Voici quelque différences avec ses concurrents :
<br /></p>
<li> Les vignettes des pages affiches le contenu comme dans KPDF contrairement à GPDF
<br /><li> Dans les vignettes des pages il n’est pas possible de modifier le zoom comme dans GPDF 
<br /><li> Le lissage des caractères et des courbes n’est pas aussi efficace qu’avec GPDF
<h3>XPDF 3.01</h3>
<p class="spip"><strong class="spip">XPDF</strong> est le lecteur PDF de base des système X-Windows.</p>

<p class="spip"><strong class="spip">XPDF</strong> est beaucoup moins joli et efficace que <strong class="spip">GPDF</strong> ou <strong class="spip">KPDF</strong>. Il faut donc l’utiliser uniquement si vous voulez un bureau minimaliste sans Gnome ou KDE.</p>

<h3>Tableau comparatif des lecteurs testés</h3>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Fonctionnalité</strong></th><th scope='col'><strong class="spip">Acrobat Reader</strong></th><th scope='col'><strong class="spip">KPDF</strong></th><th scope='col'><strong class="spip">KghostView</strong></th><th scope='col'><strong class="spip">GPDF</strong></th><th scope='col'><strong class="spip">EVINCE</strong></th><th scope='col'><strong class="spip">XPDF</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>Ajustement de l’impression à la zone imprimable</td><td>Oui</td><td>.</td><td>.</td><td>.</td><td>.</td><td>.</td></tr>
<tr class="row_odd"><td>Gestion de la transparence des images .png</td><td>Oui</td><td>Oui</td><td>.</td><td>.</td><td>(1)</td><td>.</td></tr>
<tr class="row_even"><td>Rotation d’un document</td><td>Oui</td><td>.</td><td>.</td><td>.</td><td>Oui</td><td>.</td></tr>
<tr class="row_odd"><td>Lissage des caractères et des courbes</td><td>Oui</td><td>.</td><td>.</td><td>Oui</td><td>(2)</td><td>.</td></tr>
<tr class="row_even"><td>Intégré à KDE et Konqueror</td><td>.</td><td>Oui</td><td>Oui</td><td>.</td><td>.</td><td>.</td></tr>
<tr class="row_odd"><td>Intégré avec un plugin dans Firefox</td><td>Oui</td><td>.</td><td>.</td><td>.</td><td>Oui (3)</td><td>.</td></tr>
<tr class="row_even"><td>Zoom plus ou moins à la souris</td><td>Oui</td><td>Oui</td><td>.</td><td>.</td><td>.</td><td>.</td></tr>
<tr class="row_odd"><td>Modifier ou déplacer le zoom à partir de la page en miniature </td><td>Oui</td><td>.</td><td>Déplacer</td><td>Oui</td><td>.</td><td>.</td></tr>
<tr class="row_even"><td>Affichage détaillé des pages en miniature</td><td>Oui</td><td>Oui</td><td>Oui</td><td>.</td><td>Oui</td><td>.</td></tr>
<tr class="row_odd"><td>Navigation avec les signets (Contenu)</td><td>Oui</td><td>Oui</td><td>.</td><td>Oui</td><td>Oui</td><td>.</td></tr>
<tr class="row_even"><td>Mode diaporama avec animations</td><td>.</td><td>Oui</td><td>.</td><td>.</td><td>.</td><td>.</td></tr>
<tr class="row_odd"><td>Copier / Coller de texte ou d’images</td><td>Oui</td><td>Oui</td><td> </td><td> </td><td>Texte</td><td> </td></tr>
<tr class="row_even"><td>Recherches dans le document</td><td>Oui</td><td>Oui</td><td> </td><td> </td><td>Oui</td><td> </td></tr>
</tbody>
</table>
<p class="spip">(1) La version 0.4 d’Evince fournie actuellement sur Debian Testing ne supporte pas la transparence, mais la dernière version 0.5.2, la supporte partiellement (sur certains fichiers)</p>

<p class="spip">(2) La version 0.4 d’Evince ne supporte pas le lissage des caractères et des courbes, mais la dernière version 0.5.2, le supporte parfaitement comme GPDF.</p>

<p class="spip">(3) Pour activer le plugin, il faut installer le paquet « mozplugger » et modifier le fichier « /etc/mozpluggerrc »</p>

<h2>Importer des fichiers PDF avec « KWord 1.4.2 »</h2>
<p class="spip">KWord est capable d’importer le contenu (Texte avec mise en forme et images) d’un fichier PDF.</p>

<p class="spip">L’importation n’est pas parfaite (loin de là), mais elle permet déjà de récupérer beaucoup d’informations.</p>

<p class="spip">KWord est à ma connaissance le logiciel libre permettant l’importation PDF la plus efficace.</p>

<h2>Récupérer les images d’un fichier PDF avec « pdfimage » fourni avec « XPDF »</h2>
<p class="spip">Cette commande extrait toutes les images du fichier PDF « MonFichier.pdf » en les nommant avec un commençant par « MesImages »</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ pdfimages -j MonFichier.pdf MesImages</code></p>

<p class="spip"><strong class="spip">Remarque </strong> : Le paramètre « -j » permet de convertir les images au format .jpg si c’est possible autrement, elles sont extraites au format .ppm</p>

<h2>Convertir un fichier PDF en image avec « convert » fourni avec « ImageMagick »</h2>
<p class="spip">La commande suivante permet de convertir un fichier pdf au format png</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ convert MonFichier.pdf MonFichier.png                                                                   </code></p>

<p class="spip">La commande suivante permet de convertir un fichier pdf au format tif avec une compression de type lzw :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ convert -compress lzw MonFichier.pdf MonFichier.lzw.tif                                                  </code></p>

<p class="spip">Pour plus d’informations sur les options de cette commande, vous pouvez consulter cette page :
<br /></p>
<li> <a href="http://www.imagemagick.org/script/command-line-options.php#compress" class="spip_out">http://www.imagemagick.org/script/command-line-options.php#compress</a>
<h2>Convertir un fichier PDF en HTML avec « PDFtoHTML »</h2>
<p class="spip">Comme son nom l’indique, cet utilitaire en ligne de commande permet de convertir un fichier PDF en HTML. L’intérêt de cet utilitaire est qu’il récupère à la fois le texte formaté et chaque image dans un fichier séparé.</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ pdftohtml MonFichier.pdf                      </code></p>

<h2>Converti un fichier PDF en texte ou en image PPM avec « XPDF »</h2>
<p class="spip">Le paquet xpdf fourni plusieurs utilitaires en ligne de commande :
<br /></p>
<li> pdftoppm : Pour convertir un PDF en image PPM
<br /><li> pdftops : Pour convertir un PDF en fichier PostScript
<br /><li> pdftotext : Pour convertir un PDF en texte brute (non formaté)
<h2>Convertit un fichier PDF en image bitmap avec Gimp</h2>
<p class="spip">Gimp est capable d’ouvrir un fichier PDF et donc de l’enregistrer dans n’importe lequel des nombreux formats qu’il connaît.</p>

<p class="spip">Cependant convertir un fichier avec Gimp a deux inconvénients :
<br /></p>
<li> Le résultat sera forcément une image bitmap (en pixels) et non pas vectorielle alors que le format PDF est de type vectoriel.
<br /><li> Gimp ne peut ouvrir qu’une seule page d’un fichier PDF à la fois. Donc si votre fichier PDF comporte des dizaines de pages, il faudra effectuer la conversion page par page.
<h2>Manipuler des PDF avec PDFTK</h2>
<p class="spip">PDFTK est une boite à outils pdf permettant d’effectuer de nombreuses opérations :
<br /></p>
<li> Fusionner plusieurs documents PDF
<br /><li> Modifier les propriétés et les permissions d’un document
<br /><li> Manipuler les formulaires et les fichiers attachés
<br /><li> Ajouter un filigrane
<br /><li> Compresser et décompresser le code PDF
<br /><li> Tenter de réparer un document endommagé
<p class="spip">Voici un exemple pour essayer de réparer un fichier endommagé :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ pdftk MonFichierAbimé.pdf output MonFichierRéparé.pdf</code></p>

<p class="spip">La commande suivante, permet de réparer un fichier pour ensuite le convertir en tif :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ pdftk MonFichier.pdf output - | convert -compress lzw pdf:- MonFichier.tif</code></p>

<p class="spip">Pour les utilisateurs de Konqueror, il existe deux servicemenu exploitant la plupart des fonctionnalités de pdftk :
<br /></p>
<li> <a href="http://kde-apps.org/content/show.php?content=18545" class="spip_out">http://kde-apps.org/content/show.php ?content=18545</a>
<br /><li> <a href="http://kde-apps.org/content/show.php?content=37321" class="spip_out">http://kde-apps.org/content/show.php ?content=37321</a>
<h2>Fusionner et découper des PDF avec PDFSAM</h2>
<p class="spip">PDF Split And Merge (Pdfsam) est un utilitaire utilisable en ligne de commandes ou via une interface graphique qui permet de fusionner ou découper des fichiers PDF.</p>

<p class="spip">PDFSAM est multi-plateforme, car il est écrit en Java et s’appuie sur la librairie iText. L’interface est en anglais.</p>

<p class="spip">PDFSAM est plus simple (mais plus limité) à utiliser que PDFTK.</p>

<p class="spip">Liens pour avoir plus d’informations :
<br /></p>
<li> Le site officiel : <a href="http://www.pdfsam.org/" class="spip_out">http://www.pdfsam.org/</a>
<br /><li> Article de Framasoft : <a href="http://www.framasoft.net/article4346.html" class="spip_out">http://www.framasoft.net/article4346.html</a>
<h2>Ajouter une entrée dans le menu contextuel de Konqueror pour convertir des PDF </h2>
<p class="spip">Pour ajouter de nouvelles entrées dans le menu contextuel de Konqueror, il faut créer un nouveau fichier intitulé par exemple « <strong class="spip"> Traitement-PDF.desktop </strong> » dans le dossier suivant :
<br /></p>
<li> <strong class="spip">/usr/share/apps/konqueror/servicemenus</strong>
<p class="spip">Voici un exemple de contenu permettant de convertir des PDF en TIF :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>[Desktop Entry]<br />
ServiceTypes=all/allfiles<br />
Actions=PDFenTIF<br />
<br />
[Desktop Action PDFenTIF]<br />
Name=Convertir PDF en TIF<br />
Name[fr]=Convertir PDF en TIF<br />
Icon=kpdf<br />
Exec=pdftk %U output - | convert -compress lzw pdf:- %U.lzw.tif</code></div>
<h2>Éditer des fichiers PDF avec « PdfEdit »</h2>
<p class="spip">PdfEdit est un nouveau programme très intéressant permettant d’éditer et modifier des fichiers PDF. A ce jour (4 mars 2007) il n’est pas disponible sous Debian Testing, mais le paquet disponible sous Debian Sid fonctionne sans problème sous Testing :
<br /></p>
<li> <a href="http://ftp.debian.org/debian/pool/main/p/pdfedit/" class="spip_out">http://ftp.debian.org/debian/pool/main/p/pdfedit/</a>
<p class="spip">Une fois le paquet téléchargé, il suffit de l’installer avec cette commande :</p>

<p class="spip"><code class='spip_code' dir='ltr'># dpkg -i pdfedit_0.2.5-1_i386.deb</code></p>

<h2>Convertir une image PDF / Postscript dans un autre format vectoriel avec pstoedit</h2>
<p class="spip">Le programme « <strong class="spip"> pstoedit </strong> » permet de convertir un fichier Postscript dans la plupart des formats vectoriels existants :
<br /></p>
<li> svg, wmf, dxf,...
<p class="spip">Par exemple, ces deux commandes permettent de convertir un fichier PDF en fichier SVG :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ pdftops MonFichier.pdf<br />
$ pstoedit -f plot-svg MonFichier.pdf.ps MonFichier.pdf.svg    </code></div>
<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.3</td><td>22/04/06</td><td>Création par Tony GALMICHE</td></tr>
<tr class="row_odd"><td>0.5</td><td>04/03/07</td><td>Ajout chapitre « Éditer des fichiers PDF avec « PdfEdit »</td></tr>
<tr class="row_even"><td>0.6</td><td>07/03/07</td><td>Ajout servicemenu de Konqueror pour « pdftk »</td></tr>
<tr class="row_odd"><td>0.7</td><td>21/03/07</td><td>Ajout « Convertir une image PDF / Postscript dans un autre format vectoriel avec pstoedit »</td></tr>
<tr class="row_even"><td>0.8</td><td>03/05/07</td><td>Ajout « Fusionner et découper des PDF avec PDFSAM »</td></tr>
</tbody>
</table>