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.

Eksplorasi konten lain dari Kadek Jayak

Langganan sekarang agar bisa terus membaca dan mendapatkan akses ke semua arsip.

Lanjutkan membaca