Merge/split PDF files directly in Dolphin (KDE)
Context
I have just switched to KDE after using Gnome during many years, and I am quietly getting used to it.
But recently I had to merge 2 PDF files, so I searched for a good solution for KDE. There are many command-line tools to do this on Linux, but the few graphical interfaces are very ugly.
So I thought it would be great to integrate a merge/split PDF function directly in Dolphin, the KDE file manager. In dolphin when you right-click on a file, a menu pops up with a sub-menu “Actions”, where you can add your features. I will now explain how I did this.
Prerequisites
- You need to be running a recent version of KDE (using Dolphin as your file manager). I have the version 4.3.5.
- To manipulate your PDF files, you need a command-line tool, I chose pdftk. You can install the package pdftk on kubuntu, for example by typing in a terminal:
sudo apt-get install pdftk
Create scripts to merge/split PDF files automatically
I created two scripts: one to merge PDF files, and the other one to split them. I put both files in the directory /opt/pdf-service:
- /opt/pdf-service/pdf-service-merge.sh (download):
#!/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 (download):
#!/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
Here are the steps you need to follow to get these files properly on your computer:
- Create the /opt/pdf-service directory: type in a terminal:
sudo mkdir /opt/pdf-service
- Download the two files in the directory: type in a 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
- Make the files executable: type in a terminal:
sudo chmod a+x /opt/pdf-service/*.sh
Add the service to Dolphin
A service in Dolphin is declared using a simple .desktop file in the directory /usr/share/kde4/services/ServiceMenus/: Here is the file you should put as /usr/share/kde4/services/ServiceMenus/pdf-servicemenu.desktop (download):
[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
Now you just need to close all opened windows of Dolphin, launch it again, and you should see the menu entries in the Actions submenu when you right-click on a PDF file.
The entries are only available in English and French in my file, but you can easily add another language in the pdf-servicemenu.desktop file.
It would be great to have an user-friendly interface to install packages that add useful submenu entries like that! Some sorf of Dolphin extensions…