Ghostscript ile PDF'yi siyah beyaza dönüştürme


21

Bu soruya benzer şekilde:

PDF'yi FLOSS'taki komut satırında gri skalaya dönüştürür müsünüz?

Bir PDF belgesim var ve onu saf siyah beyaza dönüştürmek istiyorum. Bu yüzden yarım tonları atmak istiyorum. Ghostscript ile gri tonlamaya dönüştürmek için şu komutu kullanabilirsiniz:

gs \
 -sOutputFile=output.PDF \
 -sDEVICE=pdfwrite \
 -sColorConversionStrategy=Gray \
 -dProcessColorModel=/DeviceGray \
 -dCompatibilityLevel=1.4 \
  input.PDF < /dev/null

Monokrom elde etmek için neyi değiştirmek zorundayım, örneğin sadece siyah ve beyaz renkler ve yarım tonlar yok?

Yanıtlar:


6

Son öneri gerçekten sadece gri tonlamaya dönüşür ve daha sonra sadece temeldeki doküman setrgbcolor kullanıyorsa çalışır . Setcolor kullanan bir doktorum olduğu için bu benim için işe yaramadı .

Her zaman rengi 0,0,0 olarak ayarlamak için setcolor'u yeniden tanımlamakta başarılı oldum :

gs -o <output-file.pdf> -sDEVICE=pdfwrite \
-c "/osetcolor {/setcolor} bind def /setcolor {pop [0 0 0] osetcolor} def" \
-f <input-file.ps>

Herhangi bir PostScript hacklemesinden bu yana 15 yıldan fazla zaman geçti, bu yüzden yukarıdakiler topal, yanlış veya hatta yanlışlıkla olabilir - daha iyi nasıl yapacağınızı biliyorsanız, lütfen önerin.


3

Aşağıdaki öneri işe yarayacak mı emin değilim ... ama denemeye değer olabilir:

  1. PDF'yi basit pdf2psyardımcı programı kullanarak PostScript'e dönüştürün
  2. yeniden tanımlanmış bir /setrgbcolorPostScript işleci kullanırken bu PostScript'i tekrar PDF'ye dönüştürün

Bunlar komutlar:

İlk

  pdf2ps color.pdf color.ps

Bu size color.psçıktı olarak verir .

İkinci

gs \
-o bw-from-color.pdf \
-sDEVICE=pdfwrite \
-c "/setrgbcolor{0 mul 3 1 roll 0 mul 3 1 roll 0 mul 3 1 roll 0 mul add add setgray}def" \
-f color.ps

Bunu denedim ve hala gri tonlarıyla kaldı. niklasfi tek renkli istiyor.
Ocak'ta

3

Ghostscript değil, ama imagemagick ile bu oldukça basit:

 convert -monochrome input.pdf output.pdf

10
Ortaya çıkan pdf kalitesi orijinalden çok daha kötüdür.
Hindol

convert -monochrome -denisty 600?
Ilia w495 Nikitin

Bu yarım tonlama yapıyor gibi görünüyor; Karanlığa bakılmaksızın tüm renklerin (ancak beyazın) siyaha dönüştürülmesini istiyorum.
g. Roket



0

Saf siyah beyaz PDF için, postscript için önce ps formatına, sonra PDF'ye dönüştürmeniz gerekir:

exec(" gs -sDEVICE=psmono  -dNOPAUSE -dBATCH -dSAFER  -sOutputFile=combined.ps  $pdf");

PDF sonrası PDF -> siyah beyaz

exec(" gs -sDEVICE=pdfwrite   -dNOPAUSE -dBATCH -dSAFER  -sOutputFile=file_pdf.pdf  filename.ps");
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.