Fusionner/découper des PDFs directement dans Dolphin (KDE)

Contexte

Je viens juste de passer à KDE après avoir utilisé Gnome pendant quelques années et je suis en pleine réadaptation.

Mais j’ai récemment dû fusionner deux PDFs. J’ai donc cherché une bonne solution pour KDE. Il y a de nombreux outils en ligne de commande pour manipuler les PDFS sous Linux, mais les quelques interfaces graphiques qui existent sont franchement moches.

Je me suis donc dit que ça serait bien d’intégrer les fonctions de fusion/découpe de PDFs directement dans Dolphin, le gestionnaire de fichiers de KDE. Dans Dolphin un menu apparaît quand on fait un clic droit sur un fichier, aves un sous-menu « Actions » ou il est possible d’ajouter des fonctions. J’explique dans la suite comment il est possible de le faire.

Pré-requis

  • Vous devez utiliser une version récente de KDE (qui intègre Dolphin comme gestionnaire de fichiers). J’ai la version 4.3.5.
  • Pour manipuler les PDFs, vous avez besoin d’un outil en ligne de commande. J’ai choisi pdftk. Vous pouvez installer le paquet pdftk sous kubuntu, par exemple en tapant dans un terminal :
    sudo apt-get install pdftk

Création de scripts pour fusionner/découper les PDFs automatiquement

J’ai créé deux scripts : un pour fusionner les PDFs, l’autre pour les découper. J’ai mis les deux fichiers dans le dossier /opt/pdf-service :

  • /opt/pdf-service/pdf-service-merge.sh (télécharger):
    #!/bin/bash
    # Run a command to merge PDF files
    # Used to add a context menu in Dolphin for PDF files
    
    pdftk "$@" cat output "${1%.pdf}_merged.pdf"
  • /opt/pdf-service/pdf-service-split.sh (télécharger):
    #!/bin/bash
    # Run a command to split PDF files
    # Used to add a context menu in Dolphin for PDF files
    
    for file in "$@"
    do
       out_dir="${file%.pdf}_pages"
       mkdir -p "$out_dir"
       pdftk "$file" burst output "$out_dir/page_%04d.pdf"
    done

Voici les étapes à suivre pour installer ces fichiers sur votre ordinateur :

  • Créez le dossier /opt/pdf-service : tapez dans un terminal:
    sudo mkdir /opt/pdf-service
  • Téléchargez les deux fichiers dans le dossier : tapez dans un terminal:
    cd /opt/pdf-service && sudo wget http://www.viesurip.fr/wp-content/uploads/2010/02/pdf-service-split.sh http://www.viesurip.fr/wp-content/uploads/2010/02/pdf-service-merge.sh
  • Rendez les fichiers exécutables : tapez dans un terminal:
    sudo chmod a+x /opt/pdf-service/*.sh

Ajouter le service à Dolphin

Un service se déclare dans Dolphin en écrivant simplement un fichier .desktop dans le dossier /usr/share/kde4/services/ServiceMenus/ : voici le fichier que vous devriez créer sous le nom /usr/share/kde4/services/ServiceMenus/pdf-servicemenu.desktop (télécharger):

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf
Actions=split;merge;

[Desktop Action split]
Name=Split PDF pages
Name[fr]=Découper les pages du PDF
Icon=gnome-mime-application-pdf
Exec=/opt/pdf-service/pdf-service-split.sh %F

[Desktop Action merge]
Name=Merge PDF files
Name[fr]=Fusionner les PDFs
Icon=gnome-mime-application-pdf
Exec=/opt/pdf-service/pdf-service-merge.sh %F

To install this file, just type in a terminal:

cd /usr/share/kde4/services/ServiceMenus && sudo wget http://www.viesurip.fr/wp-content/uploads/2010/02/pdf-servicemenu.desktop

Conclusion

Il vous suffit maintenant de fermer toutes les fenêtres précédemment ouvertes de Dolphin, de relancer Dolphin, et de faire un clic droit sur un PDF. Vous devriez voir deux nouvelles entrées dans le sous-menu Actions.

Les entrées sont disponibles uniquement en Anglais et en Français dans mon fichier, mais vous pouvez facilement rajouter d’autres langues dans le fichier pdf-servicemenu.desktop.

Ça serait quand même génial d’avoir une interface sympathique pour installer des modules qui ajoutent des sous-menus utiles comme ceux-ci. Des sortes d’extensions à Dolphin…