Split dan Merge PDF di Linux
Memecah atau menggabungkan file PDF di Linux caranya sangat mudah. Ada tiga tools yang akan kita gunakan:
- pdftk
- Ghostscript
- ImageMagick
Menggunakan pdftk
Agar bisa menggunakan pdftk, kita install terlebih dahulu. Contoh berikut untuk distro Ubuntu, tinggal disesuaikan saja dengan distro yang anda gunakan.
sudo apt-get update $ sudo apt install pdftk
Kemudian, untuk mengekstrak hanya halaman 1,2,4 dan 5 dari pdf sumber, gunakan perintah berikut:
$ pdftk filelama.pdf cat 1 2 4 5 output filebaru.pdf
cat adalah perintah untuk mengekstrak/ split pdf, dan output adalah keyword yang diikuti dengan nama file hasil ekstraksi.
Kita juga bisa menggunakan range saat mengekstrak pdf:
$ pdftk filelama.pdf cat 1-2 4-5 output filebaru.pdf
Untuk mensplit halaman pdf satu persatu:
$ pdftk myoldfile.pdf burst
output yang dihasilkan secara default akan diberi nama pg_0001.pdf, pg_0002.pdf dan seterusnya.
Untuk menggabung dua file pdf, gunakan perintah berikut:
$ pdftk pg_0001.pdf pg_0002.pdf pg_0004.pdf pg_0005.pdf output filebaru.pdf
Menggunakan Ghostscript
Terkadang saat menggunakan pdftk kita menemukan error namun tidak mendapatkan penjelasan lebih jauh, misalnya seperti ini:
$ pdftk filebermasalah.pdf cat 1-4 output filebaru.pdf Unhandled Java Exception: Unhandled Java Exception: java.lang.NullPointerException at gnu.gcj.runtime.NameFinder.lookup(libgcj.so.12) at java.lang.Throwable.getStackTrace(libgcj.so.12) at java.lang.Throwable.stackTraceString(libgcj.so.12) at java.lang.Throwable.printStackTrace(libgcj.so.12) at java.lang.Throwable.printStackTrace(libgcj.so.12)
Install dulu Ghostscript:
$ sudo apt install ghostscript
Jika kita gunakan Ghostscript, akan muncul pesan yang lebih detail, dan tampak ada proses error yang "repaired or ignored":
$ gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -dFirstPage=1 -dLastPage=4 -sOutputFile=filebaru.pdf filelama.pdf GPL Ghostscript 9.05 (2012-02-08) Copyright (C) 2010 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. **** Warning: considering '0000000000 XXXXX n' as a free entry. **** Warning: considering '0000000000 XXXXX n' as a free entry. **** Warning: considering '0000000000 XXXXX n' as a free entry. Processing pages 1 through 4. Page 1 Loading NimbusSanL-Regu font from /usr/share/fonts/type1/gsfonts/n019003l.pfb... 4287624 2669241 2475832 1154775 3 done. Loading NimbusSanL-Bold font from /usr/share/fonts/type1/gsfonts/n019004l.pfb... 4328616 2778664 2516200 1192102 3 done. Loading NimbusMonL-Regu font from /usr/share/fonts/type1/gsfonts/n022003l.pfb... 4371912 2946486 2677672 1350807 3 done. Page 2 Loading NimbusSanL-BoldItal font from /usr/share/fonts/type1/gsfonts/n019024l.pfb... 4431472 2877228 2738224 1120988 3 done. Loading NimbusSanL-ReguItal font from /usr/share/fonts/type1/gsfonts/n019023l.pfb... 4471488 2998784 2758408 1209901 3 done. Page 3 Page 4 **** This file had errors that were repaired or ignored. **** The file was produced by: **** >>>> iText 1.4.5 (by lowagie.com) <<<< **** Please notify the author of the software that produced this **** file that it does not conform to Adobe's published PDF **** specification.
Menggunakan ImageMagick
Install dulu ImageMagick:
$ sudo apt install imagemagick
Gabungkan dua pdf:
$ convert file1.pdf file2.pdf output.pdf
Gabungkan subset dari dua pdf (ingat, ImageMagic menggunakna zero-based page number):
$ convert file1.pdf[0] file2.pdf[0-1,3] output.pdf
Comments
Post a Comment