PDF dosyasından görüntüler nasıl kaldırılır


13

İçinde çok sayıda resim (resim ve arka plan görüntüsü olarak) bulunan oldukça büyük (~ 100MB) bir PDF dokümanım var ve bu pdf dosyasının resimsiz bir kopyasını almak istiyorum, ancak nasıl yapılacağını bulamıyorum yap bunu.

Sadece metne dönüştürmekten bahsetmiyorum, paragrafları / tabloları / çoklu sütunları olduğu gibi tutmak istiyorum.

Komut satırı ile rahatım ve kullanabileceğim farklı dağıtımlara sahip birkaç bilgisayarım var.


Her sayfada birden fazla resim içeren 500 sayfalık bir dokümandan bahsederken, her resmi kaldırmanın otomatik bir yolunu arıyorum .
Ornux

Yanıtlar:


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

Depolarda değil, ancak web sitelerinde bir indirme ( önceden derlenmiş veya kaynak ) bulabilirsiniz .


Manuel :

15.1 Taslak Belgeler

-Draft seçeneği, bitmap (fotoğraf) görüntüleri bir dosyadan kaldırır, böylece daha az mürekkeple yazdırılabilir. İsteğe bağlı olarak, boş bırakılan boşlukları görüntünün nerede olduğunu gösteren çapraz bir kutu ile doldurarak -boxes seçeneği eklenebilir. Bunun tüm durumlarda tam olarak görülmesi garanti edilmez (bitmap, vektör nesneleri tarafından kısmen kapatılmış veya orijinalde kırpılmış olabilir). Örneğin:

 cpdf -draft -boxes in.pdf -o out.pdf

1
Tam da aradığım şey buydu . Çıktı dosyası sadece mükemmel. Çok teşekkür ederim!
Ornux

@Rinzwind Lütfen "kendi web sitesi" bağlantısının bir zip dosyasına gittiğini unutmayın.
Jos

Hmm .. benim için metnin üzerinde ve üzerinde neredeyse rastgele çizgiler eklemeye devam ediyor ve dosya boyutu küçülmek yerine biraz büyüyor.
Henning Koehler

23

Ghostscript'in son sürümleri de bunu yapabilir. Parametreyi -dFILTERIMAGEkomutunuza eklemeniz yeterlidir.

"Vektör" ve "metin" içerik türlerini seçici olarak kaldırmak için eklenebilecek iki yeni parametre daha vardır :

  1. -dFILTERIMAGE: tüm tarama görüntülerinin kaldırıldığı bir çıktı üretir.

  2. -dFILTERTEXT: tüm metin öğelerinin kaldırıldığı bir çıktı üretir.

  3. -dFILTERVECTOR: tüm vektör çizimlerinin kaldırıldığı bir çıktı üretir.

Bu seçeneklerden herhangi ikisi birleştirilebilir. (3 sayfanın tümünü birleştirirseniz, tüm sayfalar karartılır ...)

Örnekler

Aşağıda, yukarıda belirtilen 3 tür içeriğin tamamını içeren örnek bir PDF sayfasındaki ekran görüntüsü verilmiştir:

"Görüntü", "vektör" ve "metin" öğeleri içeren orijinal PDF sayfasının ekran görüntüsü .
"Görüntü", "vektör" ve "metin" öğeleri içeren orijinal PDF sayfasının ekran görüntüsü.


Aşağıdaki 6 komutun çalıştırılması, kalan 6 içeriğin olası varyasyonlarının tümünü oluşturur:

 gs -o noIMG.pdf -sDEVICE = pdfwrite -dFILTERIMAGE girdi.pdf
 gs -o noTXT.pdf -sDEVICE = pdfwrite -dFILTERTEXT giriş.pdf
 gs -o noVCT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR giriş.pdf

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

Aşağıdaki resim sonuçları göstermektedir:


Üst satır, soldan: tüm "metin" kaldırıldı; tüm "görüntüler" kaldırıldı; tüm "vektörler" kaldırıldı. Alt satır, soldan: yalnızca "metin" tutulur; sadece "görüntüler" saklanır; sadece "vektörler" tutulur.
Üst satır, soldan: tüm "metin" kaldırıldı;  tüm "görüntüler" kaldırıldı;  tüm "vektörler" kaldırıldı.  Alt satır, soldan: yalnızca "metin" tutulur;  sadece "görüntüler" saklanır;  sadece "vektörler" tutulur.



2

@Rinzwind cevabı Doğru Şey olsa da , sadece "yarı yol" çözümünü yorumlamak istiyorum. Normalde kullanarak büyük ölçüde görüntülerin boyutunu azaltabilir Ghostscript'i ile

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

... bazen düzeltme için gerçekten kullanışlı. PDF yazmak için manuel sayfa burada .


@KurtPfeifle /screen(diğer şeylerin yanı sıra) bitmap görüntü çözünürlüğünü 72 dpi olarak ayarlayacaktır. Bu yüzden evet, daha küçük DPI'de görüntüler varsa, dosya boyutunu artırabilir. "Normalde" kelimesini ("her zaman değil, oldukça sık" anlamında) kullanmamın nedeni budur. İstediğinizi indirmek için çekinmeyin.
Rmano

Bu komutu çalıştırın: 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. Kullanarak karşılaştırabileceğiniz iki metin dosyası üretecektir sdiff -sbB $[file1}.txt ${file2}.txt. Artık tanıtılan tüm farklı ayarları tam ve tamamen biliyorsunuz ! -dPDFSETTINGS=/screen
Kurt Pfeifle

Bitti. Hala hangi seçeneğin /screenolduğundan daha büyük bir dosya verebildiğini göremiyorum /default--- 72dpi'ye karşı 150dpi, optimize edilmiş, EPS önizlemesini at ... ... hey, büyük bir sorun değil. İnsanlar daha iyi çözümü test edecek ve seçecek.
Rmano

Üzgünüm - belki de ilk ifademin arsızlığından dolayı özür dilemeliyim. Dürüst olmak gerekirse, ben sadece görünmek benim daha önceki araştırmalarda (birkaç yıl arka) dan hatırlamak /screengerçekten kötü sonuçları vermiştir. Muhtemelen hafızam başarısız olur ya da karıştırdım /epub. Sana verdiğim komut hafızaydı çünkü ne demek istediğimi göstereceğinden emindim. Şimdi tekrar çalıştırdım, artık ne beklediğimi görmüyorum: birkaç yıl önce yaptığım daha geniş kapsamlı testler. Sonra birçok (CID? / CFF?) Yazı tipi elde edilen PDF'lerin şişkinlik boyutlarını rasterleştirdi. Daha fazla zamanım olduğunda sorunu tekrar ziyaret etmeliyim ... :-)
Kurt Pfeifle

0

Ana pdf düzenleyiciyi kullanabilir, bu görüntüleri silebilir ve yeni bir pdf dosyası olarak kaydedebilirsiniz. Ubuntu yazılım merkezinden indirebilirsiniz.


Sadece denemek için kurdum ama bunu yapmak için otomatik bir yol göremiyorum. 500 sayfalık bir doküman olduğu düşünüldüğünde, burada manuel kaldırma işlemini bir çözüm olarak görmüyorum. Bir şey mi kaçırdım ?
Ornux

hayır ben görüntüleri büyük boy olduğunu düşündüm bir şey kaçırmadım bu yüzden onları kaldırmak istiyorum, asla çok fazla resim düşündüm. neyse güzel soru.
Sudheer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.