Menggabungkan Banyak file PDF Sekaligus

Menggabungkan beberapa file PDF dapat dilakukan dengan menggunakan library mPDF. Namun performanya sangat buruk dan butuh waktu lama hingga terkendala dengan max_execution_time yang umumnya hanya 30 detik.

Setelah browsing saya menemukan tools pada linux yang dapat menggabungkan file pdf dengan cepat. Tools tersebut adalah pdfunite yang terdapat pada package poppler-utils. Ia dapat menggabungkan ribuan file sekaligus dengan cepat. Performanya sangat berbeda jauh bila dibandingkan dengan library pdf pada php.

Install pdfunite

pdfunite merupakan tools yang terdapat pada package poppler-utils, jadi untuk menginstallnya anda dapat menggunakan perintah dibawah ini:

sudo apt-get install poppler-utils

Setelah terinstall anda siap untuk menggunakan perintah pdfunite melalui terminal. Syntaxnya kurang lebih seperti dibawah ini:

/usr/bin/pdfunite <filepdf_1>...<filepdf_n> <output.pdf>

agar lebih mudah, tempatkan semua file pdf anda di dalam satu folder dan gunakan perintah dibawah ini untuk menggabungkan semua file pdf pada folder tersebut:

/usr/bin/pdfunite ./*.pdf output.pdf

Masalah Urutan

Dengan perintah diatas anda sudah dapat menggabungkan file pdf, namun output yang dihasilkan mungkin tidak ter-urut dengan baik. Kombinasi tools find dan sort akan membantu anda mengatasi masalah ini. Contohnya

/usr/bin/pdfunite $(find *.pdf | sort -V) output.pdf

Implementasi ke PHP

pdfunite merupakan shell script yang dijalankan melalui terminal. Bahasa pemrograman PHP menyediakan fungsi shell_exec untuk mengeksekusi shell script. Potongan kode nya kurang lebih seperti dibawah ini:

$command = "cd ${dir_path} &&" . ' /usr/bin/pdfunite $(find *.pdf | sort -V) output.pdf';
shell_exec( $command );

Seorang Web Developer di Denpasar Bali. Nulis blog hanya sekedar iseng dan berbagi pengalaman.