#4 Menggabungkan File PDF

Tidak seperti biasanya, selama beberapa bulan belajar di padepokan, baru kali ini si Dudun dipanggil oleh Ki Kawuryan. Beliau adalah pemimpin padepokan yang dikenal memiliki kesaktian dan kebijaksanaan di atas manusia pada umumnya. Semua orang sangat menghormati beliau dan sering datang untuk meminta bantuan dalam menyelesaikan berbagai masalah.

Perlahan si Dudun memasuki pendapa tempat Ki Kawuryan biasa menerima tamu. Beliau terlihat sangat tenang. Ketika menyadari kedatangan si Dudun, beliau mengangguk memberi isyarat agar si Dudun duduk di kursi dekatnya.

“Ada apa gerangan Ki memanggil saya?”, tanya si Dudun.

Uhuk uhuk (suara batuk).. Langsung saja ya ngger, Kamu saya minta menyelesaikan sebuah masalah”, kata Ki Kawuryan.

“Masalah seperti apa Ki?”, tanya si Dudun penasaran.

“Ini ada abdi keraton ke sini, meminta tolong pada Ki untuk menggabungkan file-file berkas lamaran prajurit”, jawab Ki Kawuryan.

“Seperti apa Ki?”, tanya si Dudun lagi.

“Ada berkas-berkas berformat pdf yang masih terpisah untuk masing-masing prajurit. Uhuk uhuk… Abdi keraton meminta berkas itu untuk disatukan menjadi satu file pdf saja untuk kepentingan kemudahan penyimpanan”, terang Ki Kawuryan panjang lebar.

“Saya yakin kamu bisa ngger“, tambah Ki Kawuryan meyakinkan si Dudun.

“Baiklah Ki”, jawab si Dudun sambil mengangkut ke 442 file.

“Saya pamit dulu ya Ki”, kata si Dudun.

“Kalau ada kesulitan, hubungi saja Eyang yang tinggal di desa sebelah”, lanjut Ki Kawuryan.

Memasuki kamar tempat tinggalnya selama di padepokan, si Dudun segera mempersiapkan whiteboard. Whiteboard yang penuh dengan coretan dihapus dan segera ditulisi dengan kasus yang akan dia tangani. Sembari sesekali memperhatikan file yang didapatkannya dari Ki Kawuryan, si Dudun mulai membuat gambaran mengenai kasus ini.

Menggabungkan file PDF

Properti file
Nama file: 00000___a8c563f671baffde4bcc02fccc39de46.pdf, 00001___3e6f9d63c35790123c913e3de6ed6b9c.pdf, dst..
Jumlah file: 442 (banyaknya… mau perang apa ya?)

Tahap penyelesaian
Cari cara untuk menyatukan file

Setelah merumuskan langkah penyelesaiannya, si Dudun kemudian segera berpikir bagaimana caranya menyatukan file tersebut. Merasa tidak ada ide, si Dudun pun bertanya kepada seniornya, si Dadang.

“Kakang Dadang, tahukah dirimu bagaimana cara menyatukan file pdf?”, tanya si Dudun setelah menjelaskan secara singkat kasus file PDF ini.

“Adimas Dudun, gampang sekali caranya”, kata si Dadang yakin.

“Bagaimanakah itu Kakang?”, tanya si Dudun senang membayangkan kasusnya akan segera selesai.

“Tinggal hapus saja 441 file yang lain. Jadi tinggal satu kan?”, kata si Dadang cekikikan.

“Hah?? Bukan hanya dijadikan satu file, tapi digabungkan menjadi satu”, kata si Dudun dongkol.

“Hahahaha.. Kalau itu saya tidak tahu Adimas”, jawab si Dadang sambil tertawa.

Merasa tidak ada harapan di padepokan, Si Dudun pun pergi menuju desa sebelah untuk menemui si Eyang. Berbeda dengan Ki Kawuryan, si Eyang memiliki pengetahuan yang sangat luas. Namun si Eyang tidak pernah mau memberikan jawaban secara langsung kepada para penanyanya. Beliau hanya mau menunjukkan di mana pengetahuan tersebut berada. Penanya kemudian harus menuju ke tempat tersebut dan mempelajarinya sendiri. Nama lengkap si Eyang adalah Eyang Google.

Rubah Api si Dudun berhasil mengantar sampai ke desa sebelah. Si Eyang sedang berada di kebun ketika si Dudun sampai di rumahnya. Dengan segera si Dudun menyampaikan maksud kedatangannya. Dia sedikit berhati-hati dan spesifik dalam bertanya, karena setiap kata dalam pertanyaannya bisa menghasilkan jawaban yang berbeda. Si Eyang kemudian menyuruh si Dudun untuk pergi ke sebuah perpustakaan di balik gunung, tidak jauh dari desa sebelah. “Carilah di rak 11 baris pertama”, pesan si Eyang. Tanpa buang waktu, si Dudun memacu Rubah Apinya menuju ke balik gunung.

Rubah Api sedang on fire. Perjalanan ke balik gunung dapat dilakukan dengan cepat. Di perpustakaan yang dimaksud si Eyang, si Dudun segera menuju rak 11 baris pertama. Dia mulai membaca dan menemukan bahwa salah satu cara yang paling praktis tanpa melakukan instalasi tertentu adalah dengan menggunakan GhostScript. GhostScript adalah semacam rapalan untuk memodifikasi file pdf. Berikut adalah rapalan yang harus dilakukan si Dudun untuk menggabungkan file pdf:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=finished.pdf file1.pdf file2.pdf

Kembali ke kamarnya, si Dudun kembali berpikir. “Kalau menggunakan rapalan tersebut secara manual untuk 442 file rasanya kok kurang efisien. Di samping ada 442 nama yang harus disebutkan, namanya pun sangat panjang dan tidak umum. Abdi keraton mana sih yang membuat nama file macam ini?”, kata si Dudun pada dirinya sendiri. Tak berapa lama, ia menambahkan sesuatu di whiteboardnya:

Menggabungkan file PDF

Properti file
Nama file: 00000___a8c563f671baffde4bcc02fccc39de46.pdf, 00001___3e6f9d63c35790123c913e3de6ed6b9c.pdf, dst..
Jumlah file: 442 (banyaknya… mau perang apa ya?)

Tahap penyelesaian

  • Cari cara untuk menyatukan menggabungkan file : GhostScript
  • Ganti nama file menjadi lebih mudah dan berpola
  • Buat rapalan untuk menggabungkan sedikit file berulang kali

Si Dudun mengingat-ingat rapalan apa gerangan yang bisa digunakan untuk mengganti nama file. Dia teringat rapalan bernama rename. Setelah mengaduk-aduk buku “Bunga Rampai Manual Rapalan”, si Dudun pun mendapati bahwa rapalan rename bisa digunakan untuk mengganti nama file dengan pola tertentu. Pola pencocokan nama file ini dalam buku tersebut disebut dengan nama Regular Expression atau biasa disingkat regex. Disebutkan pula bahwa jenis regex yang dipakai oleh rapalan rename didasarkan pada regex milik Perl, sebuah bahasa khusus yang biasa digunakan untuk memanipulasi teks.

Si Dudun pun berlanjut menjelajahi buku “Bunga Rampai Regex di Perl”. Dia mulai mencoba-coba merapal regex menggunakan Perl untuk mengubah nama file menjadi lebih singkat dan berpola. Menilik nama file yang sekarang, ia ingin mengubah namanya menjadi seperti 00000.pdf, 00001.pdf, dan seterusnya. Akhirnya setelah beberapa lama, ia pun berhasil menemukan regex yang benar, Dengan penuh semangat, si Dudun menggabungkan regex dengan rapalan rename untuk mengubah semua nama filenya. Ia mulai merapal:

rename 's/^*___[a-z0-9]{32}//' * -v

Tak berapa lama, semua nama file berubah sesuai dengan yang diharapkan oleh si Dudun. Si Dudun bersorak-sorak kegirangan. Nama file sekarang telah berubah menjadi: 00000.pdf, 00001.pdf, dst. Kini tibalah saatnya bagi si Dudun untuk melanjutkan ke tahap selanjutnya: membuat rapalan untuk melakukan penggabungan sedikit file pdf secara berulang. Kali ini si Dudun merasa yakin bahwa buku yang harus ia baca adalah “Bunga Rampai Rapalan Shell”. Rapalan shell memungkinkan perapalan rapalan secara berulang kali secara otomatis.

Setelah mempelajari selama beberapa saat, tibalah saatnya bagi si Dudun untuk mencoba rapalan shell tersebut. Ia menyusun rapalan dengan berhati-hati. Setelah beberapa kali percobaan, akhirnya ia berhasil membuat rapalan yang benar. Dia menulis rapalan tersebut pada selembar kertas:

# Combining multiple pdf files with GhostScript

echo "Beginning Merging Files"

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp0.pdf 00000.pdf
#gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=finished.pdf finished.pdf 00001.pdf

for ((i=1;i <= 9;i++))
do
	echo "processing $i"
	gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp$i.pdf temp$((i-1)).pdf 0000$i.pdf
	echo "remove temp$((i-1)).pdf"
	rm temp$((i-1)).pdf
done

echo "processing 10"
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp10.pdf temp9.pdf 00010.pdf
echo "remove temp9.pdf"
rm temp9.pdf

for ((i=11;i <= 99;i++))
do
	echo "processing $i"
	gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp$i.pdf temp$((i-1)).pdf 000$i.pdf
	echo "remove temp$((i-1)).pdf"
	rm temp$((i-1)).pdf
done

echo "processing 100"
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp100.pdf temp99.pdf 00100.pdf

echo "remove temp99.pdf"
rm temp99.pdf

for ((i=101;i <= 446;i++))
do
	echo "processing $i"
	gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp$i.pdf temp$((i-1)).pdf 00$i.pdf
	echo "remove temp$((i-1)).pdf"
	rm temp$((i-1)).pdf
done

Cukup panjang rapalan tersebut rupanya. Rapalan tersebut ia beri nama ghost.sh. Si Dudun memisahkan file-file tersebut berdasarkan jumlah digit namanya. Ia merasa belum perlu untuk membuat rapalan yang bisa menanggulangi jumlah digit atau memanggil rapalan rename lagi untuk menyetarakan jumlah digit. Dia terpaksa menggunakan kata temp untuk menyimpan nama file hasil sementara, karena namafile pada rapalan GhostScript tidak bisa diisi rekursif.

Akhirnya, si Dudun siap memanggil kertas rapalan yang telah ia buat. Ia mulai merapal:

./ghost.sh

Tak berapa lama, rapalan tersebut mulai bekerja. File demi file satu persatu digabungkan. Awalnya cepat sekali untuk menggabungkan file. Namun seiring dengan jumlah halaman file yang berhasil disatukan bertambah banyak, rapalan tersebut menjadi semakin lambat. Rupanya rapalan ini bersifat polinomial. Setelah tiga hari tiga malam menunggu, barulah akhirnya semua file berhasil disatukan oleh rapalan tersebut.

Pada hari keempat, si Dudun datang menemui Ki Kawuryan di pendopo padepokan. Ki Kawuryan menerima si Dudun dengan ramah. Si Dudun pun mulai menceritakan semua pengalamannya tersebut. Tiba-tiba Ki Kawuryan terkekeh-kekeh.

“Kamu pakai rapalan GhostScript?”, tawa Ki Kawuryan.

“Iya Ki. Ada apa gerangan kok Aki tertawa?”, tanya si Dudun bingung.

“Kenapa kamu tidak memakai mesin penggabung file pdf buatan Eyang Adobe? Bisa lebih cepat kan?”, kata Ki Kawuryan.

Dan si Dudun pun pingsan.

[selesai]

Catatan Penulis:

Tulisan ini saya tulis dengan gaya seperti ini karena ingin mencoba gaya menulis cerita silat mirip serial Gajah Mada tulisan Langit Kresna Hariadi. Walau tidak terlalu bagus, kuharap teman-teman menyukainya. Sampai jumpa di kisah petualangan si Dudun selanjutnya.

Meskipun karakter dalam cerita tersebut di atas adalah fiksi, teknik dan rapalan yang disebutkan di dalamnya adalah asli dan dapat dipraktekkan di dunia nyata. Hal yang patut diingat adalah cerita ini tidak ada hubungannya dengan hal-hal yang berbau mistis.

Referensi Bunga Rampai:

Credits:
COLLECTIE TROPENMUSEUM De prins van Poerbojo met gevolg voor zijn huis in Yogyakarta Java image by Tropenmuseum, licensed Creative Commons Attribution-Share Alike 3.0 Unported.

Tinggalkan komentar

6 Komentar

  1. makasih infonya ya🙂

    Balas
  2. gila bener2 beda ama yg lainnya…asyik bgt ceritanya…bs masuk koran nie rif…atau kolom khusus “Dongeng IT”…manstab…manstab….luar biasa…

    Balas
  3. bener kt bangSyad rif..
    lebih menarik bacanya..
    ditunggu kisah dudun selanjutnya🙂

    Balas
  4. @devo:
    sama-sama..

    @adid:
    hahahaha,, masa bisa masuk koran..
    ga nyampe lah..
    matur nuwun..

    @hadi:
    oke deh..
    matur nuwun.. ^^

    Balas
  5. seruu banget rif! sampe ketawa2 sendiri…
    *ketinggalan baru baca sekarang hehehe

    ayo bikin lagi🙂
    kalo udah banyak, nanti diterbitin di Com41Grafika😀

    Balas

Ada apa di pikiranmu?

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: