Bir .pdf resmini komut satırından düzleştirmenin bir yolu var mı?


19

GIMP'de, bir .pdf dosyasını içe aktarabilir ve "Görüntü" açılır menüsünde "Görüntüyü Düzleştir" i seçerek GUI'yi düzleştirebilirim (çok sayıda katmanla yapılmışsa). Daha sonra .pdf dosyasını yeni bir dosya adıyla dışa aktarabilirim.

Bunu otomatikleştirmek istiyorum. Terminal üzerinden yapmanın bir yolu var mı?


1
imagemagick yükleyin ve man mogrify-im6, montaj-im6, display-im6, stream-im6, tanımla-im6, import-im6, conjure-im6, kompozit-im6, convert-im6, animate-im6 ve karşılaştır-im6.
PersianGulf

Yanıtlar:


25

UNIX Komut Satırında Re: PDF Dosyalarını Düzleştirme başlıklı bu başlıkta Google aracılığıyla bu 2 yöntemi buldum .

Yöntem # 1 - Imagemagick'in dönüşümünü kullanarak:
$ convert orig.pdf flattened.pdf 

NOT: Kalitenin bu yaklaşımla öyle olduğu bildirilmektedir.

Yöntem # 2 - pdf2ps kullanma -> ps2pdf:
$ pdf2ps orig.pdf - | ps2pdf - flattened.pdf 

NOT: Bu yöntemin görüntü kalitesini koruduğu bildirilmiştir.


1
İkinci olarak GIMP'den daha iyi kalite - teşekkürler!
generic_user

@ACD - bunu bilmek güzel. Sevindim o çözüldü senin Q
slm

2
Yöntem 1 çok bulanık bir görüntü oluştururken, yöntem 2 mükemmel çalıştı.
Severyn Kozak

1
Ne yazık ki, Yöntem # 2 görüntüyü rasterleştirmez, bu nedenle hassas bölümleri engellemeye çalışıyorsanız, kullanıcı yine de belgeyi açabilir ve katmanları kaldırabilir (Inkscape gibi bir şeyle). Ancak, Yöntem 1. çözünürlüğünü değiştirebilirsiniz: $ convert -density 150 {original,flattened}.pdf Eğer disk alanı korumak gerekiyorsa, kullanabilir -type Grayscaleveya -monochromebu tip şeylerden ya.
eacousineau

1
Her iki yöntem de pdf'yi rasterleştirecektir, ancak # 2 yöntemi çok daha yüksek bir çözünürlükte yapacaktır. Yani bu yöntemlerin hiçbiri tatmin edici değil.
Karınca

18

Ghostscript (gs) daha çok işe yaradı pdf2psve convertbenim için. Kalite neredeyse hiç bozulmadı ve dosya boyutu küçüktü.

gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-sColorConversionStrategy=/LeaveColorUnchanged  \
-dAutoFilterColorImages=true \
-dAutoFilterGrayImages=true \
-dDownsampleMonoImages=true \
-dDownsampleGrayImages=true \
-dDownsampleColorImages=true \
-sOutputFile=document_flat.pdf document_original.pdf

Burada bulundu: http://zeroset.mnim.org/2015/01/07/flatten-pdfs-with-ghostscript/


Bu yöntem harika çalışıyor, pdf rasterleştirilmemiş ve metin metin olarak korunuyor
Ant

2
Düzleştirme yoluyla bir saydamlık katmanını kaldırmak için bunu kullanmayı denedim, ancak benim için çalışmadı.
mikemtnbikes

Benim için bir yazı tipini değiştirdi, ancak önerilen diğer yöntemlerden çok daha iyi bir çözünürlük.
ste

1

Convert aynı dosya boyutunu koruyacak olmasına rağmen yavaş buldum.

Pdf2ps ps2pdf yöntemi daha hızlı ama benim için dosya boyutunu artırdığını fark ettim.

pdftk güzel çünkü sadece hızlı değil aynı zamanda aynı dosya boyutunu koruyor.

Bir dizini toplu olarak düzleştirmek için kullandığım budur.

    function pdfflatten () {
        pdftk "$1" output "$2" flatten
    }
    export pdfflatten
    alias pdfflattenDIR='mkdir flattenedPDFs; for i in `seq $(ls *.pdf | wc -l)`; do a=`ls *.pdf | head -$i | tail -1`; pdfflatten "$a" flattenedPDFs/"$a"; done'

pdftk düzleştirmek yok değil PDF içindeki görüntüleri değiştirin. Dokümanlardan "girdi PDF'sinin etkileşimli form alanlarını (ve verilerini) PDF sayfalarıyla birleştirir"
Aidan Kane

1
Açık olmak gerekirse, bu yaklaşım şeffaf katmanları düzleştirmez (yukarıda belirtildiği gibi).
mikemtnbikes
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.