====== Édition des fichiers PDF ====== * Objet : le PDF * Niveau requis : {{tag>débutant avisé}} * Commentaires : //Comment créer et manipuler les fichiers pdf ? // * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) * Suivi : {{tag>à-tester}} * Création par [[user>Freddec]] le 03/02/2008 * Testé par .... le .... * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=404 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== Introduction ===== {{/file-Rb011f4f3a6184beb5d005e7e43d8f81d.png}} Le format pdf s'est plus ou moins imposé comme format standard pour la transmission de documents. Nous avons tous, au cours de notre usage de l'outil informatique, été confrontés à diverses questions en rapport avec ce format. Comment créer un fichier pdf ? Comment en extraire du contenu, des pages, des images... Comment, à partir de plusieurs pdf, obtenir un document unique... //Cette page va tenter de répondre à certaines de ces questions.// ===== Lecteurs PDF ===== Parler des PDF sans parler des outils pour le lire serait une aberration. Alors, même si ces outils sont connus et répandus, je vais tout de même lister les principaux. ==== Outils Libres ==== === Pour Linux en général === **[[doc:systeme:xpdf-utils|xpdf]]** : outil de base pour GNU/Linux ; il requiert simplement un serveur X fonctionnel indépendamment de votre environnement de bureau. **[[doc:editeurs:zathura|zathura]]** : lecteur très léger entièrement pilotable au clavier. === Environnement Gnome === **[[:doc:environnements:gnome:evince|evince]]** : lecteur multi-format de Gnome ; il assure la lecture des pdf. === Environnement KDE === **kpdf ** et **kghostview** : se chargent pour l'un des pdf et l'autre des ps notamment === Environnement XFCE === **atril** ====== Création de fichiers pdf ====== ==== Les applications qui le gèrent en natif ==== Sans être exhaustif citons openoffice.org et scribus qui embarquent un greffons d'export au format pdf. \\ Pour les utilisateurs de kde, l'utilitaire kprinter (paquet kdeprint ) contient une imprimante virtuelle exportant au format pdf. ===== Méthode Universelle (ou quasi) ===== Pour toutes les autres applications ET pour peu qu'elles soient en mesure d'imprimer, la solution passe par cups et son plugin cups-pdf. \\ Ce dernier ajoute à la liste des imprimantes une imprimante virtuelle pdf exportant le document dans le répertoire ~/PDF/ L'installation passe par le traditionnel : apt-get update && apt-get install cups-pdf Ce qui suit est obsolète ou mal indiqué. Voir le forum là : [[https://debian-facile.org/viewtopic.php?pid=264095#p264095]] Attention, pour créer des PDF avec du texte (copiable) et non une image du document, utiliser comme backend dans la configuration de l'imprimante : Generic / Generic PostScript Printer Foomatic/Postscript (recommended) La configuration de cups-pdf se trouve dans /etc/cups/cups-pdf.conf et est assez explicite (mais en anglais). Attention, si vous ne faites pas de renommage de fichier, une page avec le même titre que la précédente écrasera la première (ça arrive souvent quand on imprime des pages web). Vous pouvez modifier la conf en ajoutant le n° du job au nom.### Key: Label ## Ajoute une étiquette à tous les noms de jobs avec un identifiant unique job-id ##  pour éviter d'écraser un ancien fichier dans le cas ou son nom serait identique. ## Toujours vrai pour un document sans titre. ## 0: étiquette uniquement les documents sans titre. ## 1: étiquette tous les documents en faisant précéder le nom par :"job_#-" ## 2: étiquette tous les documents en faisant suivre le nom par : "-job_#" ### Defaut: 0 Label 2 Une autre solution beaucoup plus élégante est d'utiliser l'instruction postprocessing pour ajouter la date courante au nom du fichier : postprocessing /usr/local/bin/cups-pdf-renamer reste à créer un fichier bash avec le nom et le chemin ci-dessus et à le rendre exécutable #!/bin/bash FILENAME=$(basename "$1") DIRNAME=$(dirname "$1") DATE=$(date +"%Y-%m-%d_%H%M%S") mv "$1" "$DIRNAME/$DATE_$FILENAME" Ne pas oublier de prendre en compte les nouveaux paramètres : service cups restart ===== Méthode avec création d'un PS (Post Script) intermédiaire ===== ==== Installation ==== Installer les paquets : - ''a2ps'' - Pour faire les Post Script ou PS de votre manuscrit. - ''ghostscript'' - Pour faire ensuite les PDF. apt-get update && apt-get install a2ps ghostscript ==== Exemple d'utilisation : ==== Vous avez créé le document à convertir dans votre /home/user. On le nomme ici par exemple : exemplaire01.txt Ligne de convertion en PS : a2ps /home/user/exemplaire01.txt -o /home/user/exemplaire01.ps Ligne de convertion en PDF : ps2pdf /home/user/exemplaire01.ps Et vous aurez votre ps et pdf dans le même répertoire. \\ //Même pas dur, hein !// Merci à captnfab pour toutes les (patientes) informations offertes menant à la création de ce complément. :-D == NOTA : == Il peut y avoir un problème avec la commande a2ps fichier.txt -o fichier.ps Pour les accents, ça ne marche qu'avec un fichier en ''latin''. En effet, si le texte contient des accents et que le fichier est en ''UTF-8'', il faut d'abord le ré-encoder en ''latin''. == recode == **recode** est dans les dépôts de [[doc:systeme:apt:branches-debian|la branche stable]]. **Installation** : apt-get update && apt-get install recode Puis : recode utf8..latin1 fichier.txt //Merci de ton attention //**geai_dechaine**//. Yep !// :-D ===== Manipulation des fichiers pdf ===== ==== pré-requis ==== Pour que les outils de manipulation soient opérationnels, il faut que tout ou parti des utilitaires ci-dessous soient installés sur votre système. (ils sont disponibles sur les miroirs Debian ) * pdftk * poppler-utils * texlive-extra-utils (à partir de Wheezy le paquet pdfjam devient un paquet de transition qui peut être enlevé sans problème. C'est maintenant texlive-extra-utils qui fournit pdfjam). Les outils de manipulation étant des extensions de menu pour konqueror, celui-ci doit donc être installé . C'est d'ailleurs une des raisons pour lesquel j'installe konqueror bien qu'utilisant XFCE Si quelqu'un sait comment utiliser les service-menu kde dans Thunar, je suis preneur :-D) Les utilitaires pdf (pdftk, poppler, pdfjam) sont également utilisables à partir de la ligne de commande, et par conséquent indépendamment de votre gestionnaire de bureau jetez un œil à leur manuel pour plus de précisions. ==== Extensions de menu pour Konqueror ==== === Pourquoi une extension de menu ? === - Elles permettent l'usage des utilitaires pdf plus facilement qu'en ligne de commande. - Elles ajoutent à konqueror des sous menus contextuels spécifiques à la gestion de pdf. === Extension de menu ? Késako ? === C'est un fichier texte répondant à la norme *.desktop promue par freedesktop.org. (voir [[:doc:environnements:xfce:xfce?&#astucemodifier_le_menu|modifier le menu Xfce]] pour plus d'info. \\ A la différence des fichiers de menu standard, ces fichiers contiennent des scripts exécutant d'autres commandes. \\ (Vous pourrez d'ailleurs le vérifier en les ouvrant avec votre éditeur de texte.) === Où copier les extensions de menu === Sous Debian, les fichiers *.desktop pour konqueror doivent être placés dans * Pour un usage utilisateur unique: ~/.kde/share/apps/konqueror/servicemenus * Pour un usage général : /usr/share/apps/konqueror/servicemenus === Comment accéder aux menus contextuels pdf === Une fois le fichier desktop placé où il faut (voir ci-dessus): - Ouvrez konqueror - Sélectionnez un (ou plusieurs) fichier pdf - Cliquez droit - Dans le menu contextuel descendez sur la ligne **action**, vous trouverez les sous menus de manipulation des fichiers pdf. (ces choix sont fonctions des services-menus que vous aurez décidé d'installer) ===== PDF Toolkit ===== Cette extension de menu est disponible à l'adresse [[http://kde-apps.org/content/show.php?content=18545]] Cliquez sur le lien download pour récupérer l'archive 18545-PDFToolkitGUI.tar.bz2 Décompressez où cela vous convient, entrez dans le répertoire **PDFToolkitGUI** et voyons sont contenu: * Un fichier Readme, lisez le ;-) * Un dossier **Ressources** dont j'avoue n'avoir pas compris l'utilisation :-( * Un dossier **Watermark** qui contient des fichiers pdf permettant l'ajout de filigrane à vos pdf. * 2 fichiers de menu .desktop que l'on va voir ci-dessous ==== msheetsperpage.desktop==== Nécessite **pdfjam** Permet de modifier la pagination des fichiers pdf en regroupant les pages à raison de 2 ou 4 pages par feuille. \\ Je préfère pour ma part utiliser les fonctionnalités de mes imprimantes et je ne m'étendrai donc pas sur son utilisation. === Préparation === Regroupez les fichiers dans un répertoire. \\ Par exemple créer un répertoire nommé test : mkdir test Copier les fichiers.pdf dedans : cp fichiertest1.pdf fichiertest2.pdf fichiertest3.pdf test Positionnez-vous dans ce répertoire test : cd test Lancez la commande : pdfjoin *.pdf ---- pdfjam: This is pdfjam version 2.08. pdfjam: Reading any site-wide or user-specific defaults... (none found) pdfjam: Effective call for this run of pdfjam: /usr/bin/pdfjam --fitpaper 'true' --rotateoversize 'true' --suffix joined -- fichiertest1.pdf - fichiertest2.pdf - fichiertest3.pdf - pdfjam: Calling pdflatex... pdfjam: Finished. Output was to '/home/user/Documents/test/fichiertest3-joined.pdf'. L'application nomme **automatiquement** le fichier pdf groupé dans le répertoire sous le nom du dernier fichier suivi de : -**joined** pour le distinguer. Source avec compléments d'options : * http://formation-logiciel-libre.com/organiser-document-pdf-multipages/ ==== pdf_toolkit.desktop ==== Nécessite **[[:doc:editeurs:pdftk|pdftk]]** Ajoute un sous menu intitulé **Trousse à outils pdf** permettant de : * Crypter/Décrypter les pdf * Compresser/Décompresser les pdf * Ajouter un watermark / filigrane à un pdf * Extraire les pages d'un fichier pdf * Joindre plusieurs pdf en un seul fichier Lors d'une fusion de fichier : \\ L'ordre dans lequel vous **sélectionnez** les fichiers sources détermine leur ordre dans le document final. ==== Konq-pdf ==== Cette extension de menu est disponible à l'adresse : \\ [[http://kde-apps.org/content/show.php?content=37321|konq-pdf]] qui vous amène sur la page d'Egregorion : \\ [http://www.egregorion.net/2007/12/08/new-version-of-konq-pdf]]. Vous y trouverez un lien pour télécharger le fichier au format .deb ou au format tgz. Si vous choisissez le paquet deb, vous devrez (pour que dpkg ne vous abreuve pas d’erreur) installer pdfjam et toutes ses dépendances. \\ A l’heure où j’écris ces lignes cela représente plus de 90 Mo de données. Pour cette raison, et n’ayant pas l’utilité des fonctionnalités amenées par pdfjam, j’ai opté pour le paquet tgz. Une fois décompressée l’archive tgz, entrons dans le dossier konq-pdf-0.2 et découvrons son contenu : * Fichiers **Change.log , copyright, license, description**. Les nom suffisent à en indiquer l’usage * Différents fichiers de menu dont je vais préciser l’usage ==== pdftotxt.desktop ==== Nécessite **xpdf-utils ou poppler-utils** \\ Conversion pdf vers txt (pas testé ) ==== pdftohtml.desktop ==== Nécessite **xpdf-utils ou poppler-utils** \\ Conversion pdf vers html (pas testé non plus) ==== pdftoppm.desktop==== Nécessite **xpdf-utils ou poppler-utils** \\ Conversion d'une ou plusieurs pages en fichier image ppm (portable pixmap) Les fichiers ppm pouvant à leur tour êtres convertis en jpeg, png etc... avec imagemagick par exemple. ==== pdfnup.desktop==== Nécessite **pdfjam** \\ Permet de modifier la pagination des fichiers pdf en regroupant les pages à raison de 2 ou 4 pages par feuille. \\ Je préfère pour ma part utiliser les fonctionnalités de mes imprimantes et je ne m’étendrai donc pas sur son utilisation. ==== pdfjoin.desktop ==== Nécessite **pdfjam** \\ Fusion de fichier pdf. Je préfère utiliser les fonctionnalités de **PDFtoolKit** ou celles du menu **pdftk** \\ (voir ci dessous) Si vous désirez franciser ces menus il vous suffit de les éditer puis d'y ajouter les traductions [fr] qui vous conviennent comme pour tout autre fichier .desktop ==== pdftk.desktop ==== Nécessite **pdftk** \\ Ajoute un sous menu "PDFtk Menu" avec : * Fusion de fichiers pdf La fusion se faisant par ordre alphabétique, pensez à renommer vos fichiers comme il faut ! * Ajout de fichier pdf en fin d'un autre pdf * Extraction de page (tout, de la page X à X+n, pages impaires, page paires) * Réparation de fichiers PDF altérés * Verrouillage/ Déverrouillage de fichier * Ajout / Extraction de pièces jointes // **A Noter**//: il semble que seul Acrobat Reader soit en mesure d'indiquer qu'une pièce est jointe au fichier pdf Mes tentatives pour la voir avec kpdf, [[:doc:environnements:gnome:evince|evince]], kghostview sont restées vaines * Compression / décompression de fichier ===== Script astucieux : ===== Pour reformer vos Post Script en format A4 dans le PDF : #!/bin/sh file=`echo $1 | cut -f1 -d"."` gs -q -dBATCH -dNOPAUSE -sPAPERSIZE=a4 -sDEVICE=pdfwrite -sOutputFile=gs -q -dBATCH -dNOPAUSE -sPAPERSIZE=a4 -sDEVICE=pdfwrite -sOutputFile=$file.pdf $1 Merci Melodie :) ===== Pour aller plus loin ===== Vous trouverez dans la liste qui suit quelques outils disponibles pour Debian en rapport avec les pdf, je ne les ai pas testé. * pdfcrack : Cracker les mots de passe des fichiers protégés * pdfcube : Lecteur de PDF en 3d (Requiert Compiz ou equivalent) * pdfedit : Edition/Modification de fichier pdf ===== Réduire le poids des pdf ===== Sur le forum : * https://debian-facile.org/viewtopic.php?id=24584 ===== Tourner les pages ===== Sur le forum : * https://debian-facile.org/viewtopic.php?id=27685 ===== Liens Utiles ===== * **Obsolète** : [[http://www.coagul.org/article.php3?id_article=443|Page sur les pdf du site de Coagul.org]] * [[http://fr.wikipedia.org/wiki/Pdf|La page de PDF de wikipédia]]