Table des matières

Édition des fichiers PDF

Introduction

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

xpdf : outil de base pour GNU/Linux ; il requiert simplement un serveur X fonctionnel indépendamment de votre environnement de bureau.

zathura : lecteur très léger entièrement pilotable au clavier.

Environnement Gnome

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

/usr/local/bin/cups-pdf-renamer.sh
#!/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 :

  1. a2ps - Pour faire les Post Script ou PS de votre manuscrit.
  2. 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 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 )

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 ?

  1. Elles permettent l'usage des utilitaires pdf plus facilement qu'en ligne de commande.
  2. 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 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

Comment accéder aux menus contextuels pdf

Une fois le fichier desktop placé où il faut (voir ci-dessus):

  1. Ouvrez konqueror
  2. Sélectionnez un (ou plusieurs) fichier pdf
  3. Cliquez droit
  4. 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:

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
retour de la commande
          ----
  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 :

pdf_toolkit.desktop

Nécessite pdftk

Ajoute un sous menu intitulé Trousse à outils pdf permettant de :

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 :
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 :

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 :

Script astucieux :

Pour reformer vos Post Script en format A4 dans le PDF :

script astucieux
#!/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é.

Réduire le poids des pdf

Sur le forum :

Tourner les pages

Sur le forum :

Liens Utiles

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !