GNU/Linux >> Belajar Linux >  >> Linux

4 cara Anda dapat mengedit PDF dengan perintah pdftk-java

Di antara whitepaper teknologi, manuskrip, dan buku RPG, saya menangani banyak PDF setiap hari. Format PDF populer karena berisi kode PostScript yang diproses. PostScript adalah bahasa asli dari printer modern, sehingga penerbit sering merilis versi digital dari sebuah buku sebagai PDF karena mereka telah menginvestasikan waktu dan upaya untuk menghasilkan file untuk dicetak. Tetapi PDF tidak dimaksudkan sebagai format yang dapat diedit, dan sementara beberapa pemrosesan terbalik dimungkinkan, itu dimaksudkan sebagai perhentian terakhir untuk data digital sebelum dikirim ke printer. Meski begitu, terkadang Anda perlu melakukan penyesuaian pada PDF, dan salah satu alat favorit saya untuk pekerjaan itu adalah perintah pdftk-java.

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Instal pdftk-java di Linux

Seperti namanya, pdftk-java ditulis dalam Java, sehingga berfungsi di semua sistem operasi utama selama Anda menginstal Java.

Pengguna Linux dan macOS dapat menginstal Java dari AdoptOpenJDK.net. Pengguna Windows dapat menginstal OpenJDK Windows build Red Hat.

Untuk menginstal pdftk-java :

1. Unduh rilis pdftk-all.jar dari repositori Gitlab-nya, dan simpan ke ~/.local/bin/ atau lokasi lain di jalur Anda.

2. Buka ~/.bashrc di editor teks favorit Anda dan tambahkan baris ini ke dalamnya:

alias pdftk='java -jar $HOME/.local/bin/pdftk-all.jar'

3. Muat pengaturan Bash baru Anda:

$ source ~/.bashrc

Sintaks perintah

Struktur pdftk-java yang valid perintah mengikuti sebuah pola, tetapi ada banyak fleksibilitas dalam apa yang ada di dalam pola. Sintaksnya sedikit tidak biasa karena tidak menggunakan opsi terminal gaya tradisional, tetapi dengan latihan, itu tidak terlalu sulit untuk diingat.

  • pdftk :Alias ​​​​untuk memanggil perintah
  • file masukan:PDF yang ingin Anda ubah
  • tindakan:Apa yang ingin Anda lakukan pada file masukan
  • keluaran:Di mana Anda ingin menyimpan file PDF yang dimodifikasi

Ini adalah bagian aksi yang paling kompleks, jadi saya akan mulai dengan tugas-tugas sederhana.

Gabungkan dua file PDF menjadi satu

Tidak jarang sampul depan sebuah buku dibuat dalam aplikasi terpisah, seperti Inkscape atau GIMP, daripada bagian buku lainnya, yang biasanya dilakukan dalam aplikasi tata letak seperti Scribus atau office suite seperti LibreOffice. Anda bisa menggabungkan keduanya di aplikasi tata letak Anda. Penerbit desktop yang baik seperti Scribus memudahkan hanya untuk mereferensikan gambar sehingga ketika sampul berubah, secara otomatis diperbarui dalam tata letak. Namun, Anda juga dapat menambahkan sampul ke PDF dengan pdftk-java :

$ pdftk cover.pdf body.pdf \
cat \
output book.pdf

Dalam contoh ini, tindakannya adalah cat , seperti dalam menggabungkan dan seperti perintah cat Linux, perintah ini menggabungkan satu atau lebih file PDF ke dalam satu aliran data, dan aliran data diarahkan ke file apa pun output argumen menentukan.

Hapus halaman dari PDF

Anda tidak dapat benar-benar menghapus halaman dari PDF, tetapi Anda dapat membuat PDF baru yang hanya berisi halaman yang ingin Anda simpan.

$ pdftk book.pdf \
cat 1 3-end \
output shorter-book.pdf

Dalam contoh ini, halaman 1 file buku saya, dan semua halaman dari 3 hingga akhir, disimpan ke file baru. Oleh karena itu, halaman yang telah saya hapus adalah halaman 2.

Pisahkan PDF menjadi file terpisah

Memisahkan file PDF menjadi banyak file berbeda juga menggunakan cat tindakan, dan pada prinsipnya mirip dengan menghapus halaman. Anda dapat membagi PDF dengan mengirimkan halaman yang Anda inginkan ke file baru:

$ pdftk book.pdf \
cat 1-15 \
output part-1.pdf

$ pdftk book.pdf \
cat 16-42 \
output part-2.pdf

Jika Anda perlu membagi PDF menjadi file satu halaman, ada tindakan khusus untuk itu, yang disebut burst :

$ pdftk book.pdf burst

$ ls
book.pdf pg_0001.pdf pg_0002.pdf
pg_0003.pdf pg_0004.pdf pg_0005.pdf
[...]

Isi formulir

Beberapa orang akan berpendapat bahwa format PDF tidak membengkak selama bertahun-tahun, dan salah satu fitur yang terkadang Anda temukan dalam file PDF adalah formulir yang dapat diisi. Anda melihat ini di dokumen pajak AS, lembar karakter RPG, buku kerja sekolah online, dan file PDF lainnya yang dimaksudkan untuk interaktif. Sementara sebagian besar pemirsa PDF modern, seperti Evince GNOME dan Okular KDE, dapat mengisi formulir PDF, Anda juga dapat mengisi formulir PDF dengan bantuan pdftk-java .

Pertama, Anda harus mengekstrak data formulir menggunakan generate_fdf tindakan. Ini mengekstrak ID elemen formulir dan menempatkannya ke dalam file teks.

$ pdftk character-sheet.pdf \
generate_fdf \
output chsheet-form.txt

File tujuan Anda (dalam contoh ini, chsheet-form.txt ) berisi data formulir yang terdapat dalam PDF, tetapi hanya bagian teks. Anda dapat mengeditnya di editor teks standar apa pun, seperti Atom atau Gedit.

Dalam pandangan sekilas yang terkadang mengagumkan dan terkadang canggung ke dalam alur kerja organisasi yang memproduksi PDF, Anda akan menemukan beberapa formulir diberi label dengan jelas, sementara yang lain memiliki nama default seperti "Checkbox_001" dan "Textfield-021", jadi Anda mungkin harus menyeberang -referensikan file teks Anda dengan PDF Anda, tetapi itu mungkin bermanfaat jika Anda menulis skrip untuk mengisi formulir secara otomatis. Setiap label ditandai sebagai /T item, dan pada baris berikutnya, ada spasi (ditandai sebagai /V ) disediakan untuk entri teks. Berikut cuplikan dari yang memiliki konteks pada labelnya dan beberapa data yang diisi:

/T (CharacterName 2)
/V (Abaddon)
>>
<<
/T (SlotsTotal 24)
/V ()
>>
<<
/T (Hair)
/V (Brown)
>>
<<
/T (AC)
/V (15)
>>
<<
/T (Background)
/V ()
>>
<<
/T (DEXmod )
/V ()

Setelah Anda memasukkan data formulir, Anda dapat menggabungkan input teks Anda dengan struktur PDF dengan fill_form tindakan:

$ pdftk character-sheet.pdf \
fill_form chsheet-form.txt \
output completed.pdf

Berikut contoh hasilnya:

Modifikasi PDF menjadi mudah

Saat Anda menangani banyak file PDF atau file PDF melalui skrip shell, alat seperti pdftk-java sangat berharga karena membebaskan Anda dari keharusan melakukan semuanya secara manual. Saat saya membuat PDF dari keluaran Docbook, itu adalah Makefile yang memanggil pdftk-java untuk sejumlah tugas, jadi tidak ada kemungkinan saya lupa langkah atau salah mengetik perintah, dan saya tidak perlu menghabiskan waktu untuk itu. Ada banyak alasan lain Anda mungkin menggunakan pdftk-java dalam alur kerja Anda sendiri, dan banyak hal lainnya pdftk-java dapat dilakukan, termasuk tindakan seperti shuffle , rotate , dump_data , update_info , dan attach_files . Jika Anda sering berurusan dengan file PDF, berikan pdftk-java coba.


Linux
  1. 4 Cara Agar Perintah Tetap Berjalan Setelah Anda Keluar Dari Sesi SSH

  2. Inilah semua yang dapat Anda lakukan dengan Nmap – Contoh Perintah

  3. Bisakah Anda Menggunakan Jangkar ^ $ Dengan Ls?

  1. Menggunakan –exclude Dengan Perintah Du?

  2. '&&' vs. '&' dengan perintah 'test' di Bash

  3. Bagaimana saya bisa menjalankan perintah yang berbeda tetapi dengan argumen yang sama?

  1. Menjadwalkan tugas dengan perintah cron Linux

  2. 4 cara untuk mengedit foto di baris perintah Linux

  3. Jadwalkan tugas dengan Linux pada perintah