Ganti gambar dalam PDF menggunakan baris perintah

11

Saya perlu memproses beberapa file PDF. Tugas terdiri dari menukar file gambar yang diberikan oleh yang lain. Masalah pertama saya adalah bagaimana cara mengganti gambar PDF dari baris perintah dalam proses batch. Selanjutnya saya akan mencoba untuk mengatasi masalah lain seperti bagaimana mengidentifikasi gambar mana yang perlu saya ganti (karena file PDF mungkin memiliki lebih dari satu gambar). Tapi pertama-tama saya ingin menyelesaikan masalah pertama: bagaimana cara mengganti gambar dalam PDF dengan yang lain.

Saya sudah membaca tentang poppler-utils dan pdftk tetapi sejauh yang saya tahu, tidak ada alat ini yang memungkinkan untuk mengganti gambar ke PDF.

Ivan
sumber
1
Jika Anda menemukan jawaban, itu akan sangat menarik untuk diketahui. Setelah mengisolasi "halaman masalah", Anda dapat menggunakan ImageMagick untuk menyisipkan gambar ke yang lain dan kemudian mengubahnya kembali ke pdf: imagemagick.org/Usage/layers Juga: superuser.com/questions/614784/…
Konstantinos
Terima kasih @pidosaurus Saya telah memilih opsi ini tetapi memiliki masalah besar: ini menyiratkan untuk mengkonversi PDF (atau halaman tanda tangan) ke gambar. Ini masalah karena ukuran PDF yang dihasilkan akan jauh lebih besar dan pengguna tidak dapat memilih sepotong teks untuk disalin dan ditempelkan misalnya.
Ivan
lookup convert dari imagemagick, dan terlebih lagi, alat yang tersedia dari openoffice (sekarang libreoffice, sebenarnya) menyediakan - Saya pernah mempekerjakan seseorang untuk menulis PPT ke PDF converter dan ini adalah alat yang digunakan.
matematika
Tidak ada alat PDF yang saya tahu mampu melakukan itu, tetapi tidak akan terlalu sulit untuk menulis alat baru menggunakan perpustakaan PDF dengan fungsi itu. Satu masalah yang harus Anda pecahkan adalah bagaimana menentukan gambar tertentu dalam PDF.
dirkt

Jawaban:

1

OK ... Saya pikir pdflatexada bagian yang hilang di sini.

OP mengatakan dia telah melihat ke dalam poppler-utilsdan pdftk. Biarkan saya menambahkannya pdfimages. Ini, bersama dengan pdflatexadalah bagian dari solusi.

pdfimages -f 4 -l 20 -j -png target.pdf imageroot

Dalam kode contoh di atas, pdfimages lihat halaman 4 sampai 20 target.pdfdan ekstrak semua gambar ke file dengan nama yang dimulai imageroot.

poppler-utilsmenyediakan pdftotext. Saya merekomendasikan -layoutopsi yang berfungsi dengan baik agar dokumen tetap dapat dibaca manusia.

pdftotext -layout $1.pdf $1.txt

Keberatan OP terhadap imagemagicksolusi yang ditawarkan oleh pidosaurus adalah bahwa suatu gambar tidak memiliki teks yang dapat diekstraksi. Dengan utilitas yang saya jelaskan, OP sekarang akan memiliki semua gambar serta semua teks yang diekstraksi, dan nomor halaman dan konten dipertahankan oleh -layoutopsi. OP dapat mengidentifikasi halaman teks yang benar dan membuangnya ke dalam .texfile yang diakhiri dengan %includegraphicsarahan dan merujuk pada gambar pengganti dengan nama file. Anda kemudian pdflatexini dan berakhir dengan .pdf satu halaman baru untuk dimasukkan ke dalam sisa dokumen Anda pdftk. Jika Anda tahu di mana dalam teks halaman asli gambar itu berada, Anda bisa %includegraphics [h]dan mendapatkan gambar itu di tempat yang tepat.

Richard Sonnenfeld
sumber