Format PDF
Cette page traite de la gestion des fichiers de type PDF sous Ubuntu.
PDF, un format partiellement fermé
Le PDF, tel que défini par l'ISO en 2008 est un format ouvert.
Néanmoins, la société Adobe ayant créé le PDF à l'origine, ses logiciels sont toujours très utilisés pour créer des PDF. Et les logiciels Adobe ne respectent pas pleinement le format ISO officiel, sans documenter ces écarts depuis 2008. Ces spécificités propriétaires sont surtout problématiques dans les formulaires PDF modifiables, où sont massivement utilisés l'extension (propriétaire) de format XFA.
Les logiciels libres lisent sans problème les documents PDF, mais certains peuvent être en échec sur des formulaires PDF+XFA, cas fréquent avec les CERFA, par exemple. Mais des solutions libres existent (comme le lecteur PDF de Firefox), ainsi que des solutions propriétaires (Foxit Reader, Master PDF Editor, …).
Par ailleurs, certains logiciels sont de simples lecteurs (sans fonctions d'annotations ou de signatures), quand d'autres sont beaucoup plus complets.
Il existe aussi de nombreux logiciels libres pour créer des PDF, comme libreoffice.
Lire un fichier PDF
Adobe ne propose plus officiellement de version linux de Adobe Reader depuis mai 2013.
- cette ancienne version peut-être installée depuis le dépôt Flathub et peut donc s'installer en suivant cette procédure, puis en installant le paquet
com.adobe.Reader
(attention à la majuscule 'R'). - On peut tenter d'installer la version récente Windows d'Adobe Acrobat Reader DC via PlayOnLinux. Voir la page Adobe Reader, 1.2. Cela ne fonctionne pas toujours.
L'installation d'Acrobat Reader sur Linux n'est pas particulièrement conseillée, puisqu'on a que le choix entre une version obsolète, et une autre difficile à installer.
Logiciels sous linux lisant les PDF :
- Evince : dispose de l'intégration à Firefox. Installé par défaut sur Ubuntu (version Gnome). Très bon lecteur, mais peine à modifier les formulaires intégrant les XFA. Voir chapitre suivant pour ces formulaires. Voir aussi le site officiel d'Evince. Permet l'ajout d'annotation.
- Firefox : le navigateur par défaut d'Ubuntu a un très bon lecteur PDF, qui gère plutôt bien les formulaires PDF+XFA. Permet l'ajout d'annotations, d'images, de dessins, de surlignage. Surement un des lecteurs PDF libre les plus puissants sous linux. Doc officielle Firefox.
- Thunderbird (logiciel courrier) utilise le lecteur PDF de Firefox, avec le même puissance. Permet donc de remplir (ou modifier) un PDF directement dans sa boite mail.
- Chromium : version libre de Chrome, Chromium a un très bon lecteur PDF, qui gère plutôt bien les formulaires PDF+XFA.
- Master PDF Editor (ni gratuit ni libre) semble assez bien traiter les formulaires CERFA.
- Okular : Okular est l'afficheur de documents du projet KDE4 SC. Il remplace les anciens logiciels KPDF, KGhostView, Kfax et KDVI, tout en prenant soin de ne pas se cantonner à la seule fonction de logiciel d'affichage du format PDF. C'est un lecteur très complet permettant d'annoter les documents, et traite assez bien la majorité des formulaires CERFA.
- Foxit Reader : Logiciel très connu sous Windows, avec une version Linux. Bon support du JavaScript et des Formulaires, y compris ceux utilisant les XFA. Un des lecteurs les plus puissant (non libre mais gratuit).
- XPDF : visionneuse de PDF très léger. NB: semble performant pour lire des PDF contenant des caractères asiatiques.
- QPDF View : lecteur PDF avec onglets, permettant d'avoir une interface plus riche dans une seule fenêtre. Lit le PostScript, le format DjVu. CUPS pour le support d'impression (à ne pas confondre avec QPDF Viewer sous Android®). Permet de remplir certains CERFA (plus que EVINCE, semble t'il), mais parfois avec une seule passe autorisée : après la sauvegarde des modifications, celles-ci deviennent définitives et non modifiables ⇒ il faut donc bien relire avant de sauvegarder. Installer QPDF View.
- MuPDF : autre visionneuse libre, très légère et très performante, disponible dans les dépôts : installation de MuPDF. Licence libre GNU AGPL et disponible dans les dépôts officiels. Peut aussi être distribué sous licence non libre pour une utilisation commerciale.
- Zathura : visionneur de documents PDF. Un logiciel extrêmement léger et pratique dont les raccourcis clavier sont basés sur ceux de VIM. La navigation via la souris est également possible. Il n'existe pas encore de page dédiée à Zathura. Vous pouvez télécharger le logiciel sous forme de sources au bas de la page de présentation (onglet "Home") de l'application de la communauté Programs with a Movie Title (tout un programme… ). Pas de procédure clairement répertoriée concernant la francisation du logiciel.
- PDFium est la version Open Source en cours chez Google.
- PDF Cube : visualiseur de PDF avec effets 3D disponible dans les dépôts à vérifier. lien vers PDF Cube (site anglophone)
- PDF Studio Viewer : visualiseur de PDF fonctionnant sous JAVA. Bon support du JavaScript et des Formulaires. (site anglophone)
Vous trouverez sur ce site non seulement un tableau fournissant des liens vers quelques visionneuses libres, mais surtout un historique du développement et de l'évolution du format PDF qui synthétise les objectifs et les enjeux d'un format que l'on ne peut que souhaiter voir demeurer libre.
Formulaires et XFA
Le PDF est un format ouvert, bien implémenté par des logiciels libres, et la lecture des fichiers ne pose pas de souci avec les lecteurs fournis par défaut.
Par contre les formulaires PDF (comme les CERFA français) utilisent souvent une extension propriétaire Adobe du format PDF, appelée XFA. Les lecteurs PDF libres courants implémentent parfois mal les XFA et peuvent alors être en échec. C'est le cas de Evince ou Atril, lecteurs par défaut d'Ubuntu et de la plupart de ses variantes. Ces logiciels gèrent bien les formulaires sans XFA, mais pas (ou pas très bien) ceux incluant ce format.
Les logiciels suivants permettent d'ouvrir des formulaires PDF+XFA avec plus de facilité :
- Depuis le 4e trimestre 2021, Firefox implémente les XFA. Ouvrir le formulaire récalcitrant avec Firefox (clic droit sur le PDF > ouvrir avec > Navigateur Web Firefox) devrait régler le problème. Firefox étant installé par défaut sur Ubuntu, c'est la solution libre la plus simple.
- Thunderbird (logiciel courrier) utilise le lecteur PDF de Firefox, avec la même puissance. Permet donc de remplir (ou modifier) un formulaire PDF directement dans sa boite mail.
- Chromium a également un bon support des formulaires XFA. Logiciel libre.
- Foxit Reader : bon support des XFA. Logiciel non libre et pas dans les dépôts (mais avec une version linux facile à télécharger) !
- Master PDF Editor a la réputation d'un très bon support XFA. Logiciel non libre et pas dans les dépôts (mais avec une version linux facile à télécharger) !
- Xournal : bon support de XFA (mais incomplet). Logiciel libre.
- QPdfView : semble traiter plus de formulaires qu'Evince.
Les formulaires CERFA de l'Administration Publique Française sont disponibles sur leur service en ligne
Modifier les textes, images et mise en page d'un fichier PDF
Les images ne sont pas toujours bien restituées, les polices ne sont pas restituées à l'identique… De plus, les fonctionnalités propriétaires d'Adobe ne sont pas gérées.
- LibreOffice Draw LibreOffice intègre directement l'ancienne extension pdf-import. il faut toutefois installer libreoffice-pdfimport Version LibreOffice du module PDF-Import.
Pour importer le fichier PDF avec LibreOffice Draw il faut sélectionner l'option dans la boite de dialogue mais dans le même temps - ne surtout pas oublier de sélectionner le format "PDF - portable document format (Draw)" dans la liste déroulante présélectionnée sur "tous les fichiers". - LibreOffice-pdfimport1) : extension de LibreOffice permettant de modifier des PDF (en les important dans LibreOffice Draw puis en les ré-enregistrant en PDF).
- Inkscape : permet la modification des pdf. Encore à améliorer mais très efficace; quelques fonctionnalités marquantes : enregistre les fichiers au format icone vectoriel SVG et permet de les retravailler; offre le choix de la taille de police; autorise l'importation d'image dans le fichier etc).
- Evince : permet le transfert de fichiers PDF vers le format d'image vectorielle SVG avant impression vers un éditeur de type Inkscape.
- Poppler-utils : permet l'extraction de texte, d'images, l'importation vers le format HTML etc…
- Scribus à partir de la version 1.5 permet d'importer des fichiers PDF multipages (les textes sont toutefois convertis en polygones) et de les éditer dans tous leurs aspects.
- GIMP : l'éditeur d'images bien connu permet également d'importer des PDF (et les transforme en images).
- Master PDF Editor : un éditeur complet pour Linux, Mac et Windows. Il s'agit d'un logiciel sous licence commerciale, avec une version à usage privé gratuite. Dans cette version, certaines fonctions avancées sont désactivées et un filigrane est ajouté dans le document lors de l'enregistrement d'une modification. Supporte bien les formulaires XFA.
- Qoppa PDF Studio : un éditeur complet pour Linux, Mac et Windows. Il s'agit d'un logiciel sous licence commerciale qui upporte les formulaires XFA.
Inkscape fait un assez bon travail mais modifie légèrement la police du texte.
Gimp ne permet pas de modifier le texte (format image).
Pour obtenir un fichier sauvegardé au format PDF à partir des logiciels ci-dessus, ou de n'importe quel autre, il suffit d'utiliser la fonction d'exportation en PDF, ou à défaut, d'imprimer dans un fichier en format PDF.
La mise en page finale des éléments graphiques d'un PDF modifié dans GIMP au format JPG se fera - par exemple - à l'aide de la fonction "imprimer dans un fichier PDF" du logiciel Gthumb.
Découpe, fusion, réorganisation, rotation et autres manipulations...
- bookletimposer crée un livret à partir d'un PDF, ou le contraire, et peut aussi mettre plusieurs pages d'un document sur une seule, pour limiter les copies par exemple (installer le paquet bookletimposer).
- LibreOffice Draw permet aussi la réorganisation en brochure, la fonction est disponible dans le panneau d'impression (onglet "Mise en page"). Pour exporter en PDF, c'est aussi possible en demandant l'impression dans un fichier (onglet "Options")
- PDFmod : pour réorganiser, tourner, combiner et supprimer des pages dans un PDF, et aussi exporter des images, modifier le titre, le sujet, l'auteur, les mots-clés, la table des matières.
- PDF Chain : pour réorganiser, tourner, combiner et supprimer des pages dans un PDF, et aussi rajouter un watermark.
- pdfarranger (anciennement PDFshuffler) : pour supprimer des pages, tourner, assembler, ré-arranger vos PDF, et aussi rogner des pages.
- PDF Split and Merge (PdfSam) : logiciel permettant de réorganiser et faire pivoter les pages et couper/assembler des PDF.
- briss : pour rogner des PDF par sélection à la souris (pour rogner des pages, essayez aussi PDFshuffler).
- Krop Permet le recadrage et le redimensionnement de pdf.
- PDFTK: concaténation, découpage, rotation, compression, modification des propriétés (auteur, etc..)… en ligne de commande
- GScan 2 PDF : création, concaténation, compression de PDF depuis scanner ou fichiers.
- PDF Jumbler : réorganisation de fichier PDF.
- pdfcrack : pour gérer les PDF protégés par mot-de-passe.
- pdfposter : assemblage de PDF pour créer un poster.
- pdfresurrect : pour gérer l'historique de vos PDF.
- whyteboard(Le paquet n'est plus disponible dans les dépôts officiels depuis Ubuntu 19.10.)) : dessiner et annoter des images sur un PDF.
- Master PDF Editor : pour éditer, modifier, protéger, insérer, surligner etc. (site anglophone) - ATTENTION : Logiciel propriétaire et privateur .
- Xournal: Xournal permet d'annoter, de surligner, du contenu dans les fichiers PDF. Attention : les formulaires PDF ne sont pas pris en charge.
- GhostScript : suite logicielle permettant de nombreuses manipulations, dont l'assemblage de plusieurs PDF 3) :
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/None -sOutputFile=fichier_assemblé.pdf fichier1.pdf fichier2.pdf
Rechercher du texte dans un PDF
Voici une astuce en ligne de commande pour rechercher un texte dans un ou plusieurs fichiers pdf. Aller dans le répertoire contenant l'ensemble des fichiers et ouvrez un terminal soit graphiquement puis clic droit "ouvrir un terminal" soit
cd /chemin/vers/le/repertoire
pour un fichier
pdftotext -layout "nom-du-fichier.pdf" - | grep -iE "texte-a-chercher"
pour plusieurs fichiers
avec boucle for :
for i in *.pdf; do echo "$i"; pdftotext -layout "$i" - | grep -iE "texte-a-chercher"; echo ; done
avec find :
find . -iname "*.pdf" -exec bash -c 'echo "{}" ; pdftotext -layout "{}" - | grep -iE "texte-a-chercher" ; echo " ####### fin fichier {} " ' \;
Export ou conversion vers un fichier PDF
- LibreOffice : permet d'enregistrer vos documents (textes, feuilles de calcul, diaporamas) en PDF.
- scenari : générer des documents vers plusieurs formats dont le PDF (basé sur OpenOffice.org).
- imagemagick : permet facilement de convertir une ou plusieurs images dans de nombreux formats dont le PDF
- Scribus : logiciel de PAO qui permet l'export en PDF de qualité professionnelle (accepté par les grandes imprimeries).
- Cups-PDF : imprimante virtuelle PDF (pour générer des PDF à partir de n'importe quelle application permettant d'imprimer).
- HtmlDoc: convertir des pages HTML en un document PDF ou PostScript. (non recommandé car pas très performant)
- WkHtmlToPdf 4) Convertit les pages HTML au format PDF ou image. Utilise le moteur de rendu WebKit (recommandé)
- ps2pdf: convertir des fichiers PostScript en PDF.
- tiff2pdf : convertir vos images en PDF.
Assembler plusieurs JPG en un PDF
Installez ImageMagick grâce à votre gestionnaire de paquet ou en une ligne de commande :
sudo apt-get install imagemagick
Toujours avec le terminal, rendez-vous dans le dossier contenant les jpg a convertir avec la commande cd. Par exemple :
cd /home/mon_nom_d'utilisateur/mon_dossier
Puis, rentrez la commande suivante :
convert *.jpg foo.pdf
Si les images ont une terminaison en .JPEG, remplacer .jpg par .JPEG.
La conversion prend plus ou moins de temps en fonction de la qualité et du nombre de fichiers . jpg à convertir.
Un document PDF s'appelant foo.pdf (ou le nom que vous avez choisi) vous attendra dans votre dossier, et contiendra tous les anciens jpg.
Attention ! Dans les dernières versions d'ImageMagick (vers 2020), un développeur fou a bloqué cette fonction ! Voir la doc Imagemagick pour débloquer la situation.
En substance, si la fonction convert ne fonctionne pas, ouvrez en mode admin le fichier /etc/ImageMagick-6/policy.xml, et supprimez ou commentez la ligne consacrée au PDF (qui devrait être quelque chose comme <policy domain="coder" rights="none" pattern="PDF" />). La commande convert *.jpg foo.pdf devrait désormais fonctionner.
Export ou conversion depuis un fichier PDF
- pdftohtml : exporter un fichier PDF en fichier HTML.
- pdftops : exporter un fichier PDF en fichier PS (PostScript). pdftops utilise la librairie poppler.
- pdf2ps: exporte aussi de PDF en PS (wrapper de la commande gs). Utilise la librairie ghostscript.
- pdf2tif : Script pour exporter un fichier PDF en fichier Tiff.
- Le paquet xpdf-utils contient pdftops (convertisseur PDF vers PostScript), pdfinfo (extracteur d'informations de documents PDF), pdfimages (extracteur d'images PDF), pdftotext (convertisseur PDF vers texte) et pdffonts (analyseur de polices PDF).
- Le paquet xpdf-reader contient pdftoppm, un utilitaire de conversion de fichier PDF vers les formats PBM, PGM et PPM.
- k2pdfopt : permet de modifier les PDF afin de les rendre plus lisibles sur smartphones et tablettes numériques.
- SoPDF : pour rendre vos PDF lisibles par les lecteurs Sony Reader.
- Calibre :
- gestionnaire d'eBook permettant également de convertir des PDF en autres formats et inverse
- Il existe également une ligne de commande permettant de convertir :
ebook-convert "source" "destination" --chapter-mark pagebreak
Réduire la taille d'un fichier PDF
Méthode en ligne de commande
- Copier votre fichier PDF dans votre Dossier personnel.
- saisir dans un terminal la commande suivante :
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="fichier_reduit.pdf" "fichier_a_reduire.pdf"
Pour plus d'information, consulter cette discussion.
Pour réduire la taille d'une image en passant en noir&blanc :
gs -dBATCH -DNOPAUSE -q -sDEVICE=pdfwrite -dColorConversionStrategy=/Gray -r100 -sOutputFile="fichier_reduit.pdf" "fichier_a_reduire.pdf"
Cette ligne de commande est encore plus efficace, et modulable :
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
- -dPDFSETTINGS=/screen piètre qualité (72 dpi)
- -dPDFSETTINGS=/ebook bon compromis (150 dpi)
- -dPDFSETTINGS=/prepress résultat similaire à la fonction "Prepress Optimized" d'Acrobat Distiller (300 dpi)
- -dPDFSETTINGS=/printer résultat similaire à la fonction "Print Optimized" d'Acrobat Distiller (300 dpi)
Pour plus d'information, consulter cette discussion.
Méthode via l'application moins moins
Il est possible aussi d'utiliser pdfmm («pdf moins moins»), un assistant graphique qui permet d'effectuer la même tâche :
Installation / utilisation
Imprimer un livre en cahiers pour le relier à l'ancienne
Un livre classique (non broché) est constitué de cahiers / livrets qui sont reliés entre eux par du fil de couture.
Pour imprimer de tels cahiers, consulter cette discussion sur debian-fr.org, ou bien celle-ci sur ubuntu-fr.org. Les scripts proposés sur ce dernier post permettent de faire de l'imposition très facilement. Pour des pages à A6 à mettre sur du A4 préférez le script de Serged et n'oubliez pas d'installer texlive-extra-utils.
Pour créer des livrets à partir d'A4 converti en A5 avec une petite interface graphique, bookletimposer, est une application idéale.
NB : Les livres brochés sont constitués uniquement de feuilles collées sur leur tranche. Le livre qui en résulte est moins solide car les pages peuvent se détacher avec le temps, lorsque la colle durcit et se casse. C'est le cas des livres de poche.
Déocériser un PDF (pour empêcher le copier/coller)
Voir cette discussion sur le forum ubuntu-fr.
Ghostscript permet de générer des fichiers PDF 1.3 protégés :
gs -dBATCH -DNOPAUSE -q -sDEVICE=pdfwrite -dEncryptionR=3 -dKeyLength=40 -dPermissions=65472 -sOwnerPassword=null -sOutputFile=sortie.pdf -f Entree.pdf
L'option -dPermissions permet de sélectionner les actions autorisées : ici ni copier, ni coller, ni imprimer n'est autorisé. Ceci permet de garder un fichier de taille faible et de qualité identique.
Cracker un pdf protégé par un mot de passe
ou bien utiliser qpdf :
qpdf --decrypt fichierProtégé.pdf fichierModifiable.pdf
Voir aussi
- Discussion "Impossible d'imprimer un document PDF" sur le forum ubuntu-fr
- Discussion "Modifier un PDF" sur le forum ubuntu-fr
- Discussion "[Résolu] Formulaires pdf/XFA sur ubuntu" sur le forum ubuntu-fr
- Astuce "Comment alléger et concaténer ses PDFs" sur le forum ubuntu-fr
Contributeurs:eagle08.