Cara menghapus gambar dari file PDF

13

Saya punya dokumen PDF yang agak besar (~ 100MB) dengan banyak gambar di dalamnya (sebagai ilustrasi dan gambar latar belakang), dan saya ingin memiliki salinan pdf itu tanpa gambar, tetapi saya tidak tahu caranya lakukan itu.

Saya tidak berbicara tentang mengonversinya menjadi teks saja, saya ingin membiarkan paragraf / tabel / multi-kolom sebagaimana adanya.

Saya nyaman dengan baris perintah dan memiliki beberapa komputer dengan distribusi berbeda yang dapat saya gunakan.

Ornux
sumber
Ketika kita berbicara tentang dokumen 500 halaman dengan banyak gambar pada setiap halaman, saya mencari cara otomatis untuk menghapus setiap gambar.
Ornux

Jawaban:

14
cpdf -draft original.pdf -o version_without_images.pdf

Itu tidak ada di repositori tetapi Anda dapat menemukan unduhan ( pra-kompilasi atau sumber ) di situs web mereka .


Manual :

15.1 Draf Dokumen

Opsi-draft menghapus gambar bitmap (fotografi) dari file, sehingga dapat dicetak dengan tinta lebih sedikit. Secara opsional, opsi -box dapat ditambahkan, mengisi ruang-ruang yang dikosongkan dengan kotak silang yang menunjukkan di mana gambar itu berada. Ini tidak dijamin sepenuhnya terlihat dalam semua kasus (bitmap mungkin telah sebagian tercakup oleh objek vektor atau terpotong dalam aslinya). Sebagai contoh:

 cpdf -draft -boxes in.pdf -o out.pdf
Rinzwind
sumber
1
Itulah tepatnya yang saya cari. File output sempurna. Terima kasih banyak!
Ornux
@Rinzwind Harap dicatat bahwa tautan "situs web mereka" sebenarnya menuju ke file zip.
Jos
Hmm .. bagi saya itu terus menambahkan baris hampir acak di seluruh teks, dan ukuran file sebenarnya tumbuh sedikit, daripada menyusut.
Henning Koehler
22

Rilis Ghostscript terbaru dapat melakukan ini juga. Cukup tambahkan parameter -dFILTERIMAGEke perintah Anda.

Bahkan ada dua parameter baru yang dapat ditambahkan untuk menghapus secara selektif jenis konten "vektor" dan "teks" :

  1. -dFILTERIMAGE: menghasilkan output di mana semua gambar raster dihapus.

  2. -dFILTERTEXT: menghasilkan keluaran tempat semua elemen teks dihapus.

  3. -dFILTERVECTOR: menghasilkan output di mana semua gambar vektor dihapus.

Dua opsi ini dapat digabungkan. (Jika Anda menggabungkan ketiganya, Anda akan mendapatkan semua halaman menjadi kosong ...)

Contohnya

Berikut adalah tangkapan layar dari halaman contoh PDF yang berisi semua 3 jenis konten yang disebutkan di atas:

Cuplikan layar halaman PDF asli yang berisi elemen "gambar", "vektor" dan "teks".
Cuplikan layar halaman PDF asli yang berisi elemen "gambar", "vektor" dan "teks".


Menjalankan 6 perintah berikut akan membuat semua 6 kemungkinan variasi konten yang tersisa:

 gs -o noIMG.pdf -sDEVICE = pdfwrite -dFILTERIMAGE input.pdf
 gs -o noTXT.pdf -sDEVICE = pdfwrite -dFILTERTEXT input.pdf
 gs -o noVCT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR input.pdf

 gs -o onlyIMG.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERTEXT input.pdf
 gs -o onlyTXT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERIMAGE input.pdf
 gs -o onlyVCT.pdf -sDEVICE = pdfwrite -dFILTERIMAGE -dFILTERTEXT input.pdf

Gambar berikut menggambarkan hasil:


Baris atas, dari kiri: semua "teks" dihapus; semua "gambar" dihapus; semua "vektor" dihapus. Baris bawah, dari kiri: hanya "teks" yang disimpan; hanya "gambar" yang disimpan; hanya "vektor" yang disimpan.
Baris atas, dari kiri: semua "teks" dihapus;  semua "gambar" dihapus;  semua "vektor" dihapus.  Baris bawah, dari kiri: hanya "teks" yang disimpan;  hanya "gambar" yang disimpan;  hanya "vektor" yang disimpan.


Kurt Pfeifle
sumber
2

Sementara jawaban @Rinzwind adalah Hal yang Benar , saya hanya ingin berkomentar solusi "tengah". Anda biasanya dapat mengurangi sangat ukuran gambar menggunakan Ghostscript dengan

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \
   -dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf original.pdf

... terkadang sangat berguna untuk proofreading. Halaman manual untuk menulis PDF ada di sini .

Rmano
sumber
@KurtPfeifle /screenakan (antara lain) mengatur resolusi gambar bitmap ke 72dpi. Jadi ya, jika Anda memiliki gambar pada DPI yang lebih kecil, itu dapat meningkatkan ukuran file. Inilah alasan mengapa saya menggunakan kata "normal" (dalam arti "tidak selalu, tetapi cukup sering"). Jangan ragu untuk melakukan downvote apa pun yang Anda inginkan.
Rmano
Menjalankan perintah ini: for s in screen default ; do gs -o /dev/null -sDEVICE=pdfwrite -dPDFSETTINGS=/${s} -c "currentpagedevice {exch ==only ( ) print === } forall" | sort | tee ghostscript---pdfwrite-PDFSETTINGS-${s}--pagedevice-settings.txt; done. Ini akan menghasilkan dua file teks yang dapat Anda bandingkan menggunakan sdiff -sbB $[file1}.txt ${file2}.txt. Sekarang Anda tahu persis dan sepenuhnya semua pengaturan berbeda yang diperkenalkan oleh -dPDFSETTINGS=/screen!
Kurt Pfeifle
Selesai Masih tidak dapat melihat opsi mana yang dapat memberikan file lebih besar /screendaripada di /default--- 72dpi versus 150dpi, dioptimalkan, buang pratinjau EPS ... tapi hei, bukan masalah besar. Orang akan menguji dan memilih solusi yang lebih baik.
Rmano
Maaf - mungkin saya harus minta maaf sekarang karena kurang ajar dari pernyataan pertama saya. Jujur, saya hanya tampaknya ingat dari penyelidikan sebelumnya saya (thn kembali beberapa) yang /screenmemberikan hasil yang benar-benar buruk. Mungkin ingatan saya gagal, atau saya campur dengan /epub. Perintah yang kuberikan padamu berasal dari ingatan karena aku cukup yakin itu akan menunjukkan apa yang kumaksud. Sekarang saya menjalankannya lagi, saya tidak lagi melihat apa yang saya harapkan: lebih banyak tes yang saya lakukan beberapa tahun yang lalu. Kemudian banyak (CID? / CFF?) Font mendapat ukuran kembung rasterized dari PDF yang dihasilkan. Saya harus mengunjungi kembali masalah ini, sekali lagi saya punya waktu ... :-)
Kurt Pfeifle
0

Anda dapat menggunakan master pdf editor, menghapus gambar-gambar itu dan menyimpannya sebagai file pdf baru. Anda dapat mengunduhnya dari pusat perangkat lunak Ubuntu.

Sudheer
sumber
Saya baru saja menginstalnya untuk mencoba tetapi saya tidak melihat cara otomatis untuk melakukan itu. Mengingat itu adalah dokumen 500 halaman, saya tidak melihat penghapusan manual sebagai solusi di sini. Apakah saya melewatkan sesuatu?
Ornux
tidak, Anda tidak ketinggalan apa pun. Saya pikir gambar berukuran besar sehingga Anda ingin menghapusnya, tidak pernah memikirkan begitu banyak gambar. pokoknya pertanyaan yang bagus.
Sudheer