การแปลง PDF เป็นขาวดำด้วย ghostscript


21

คล้ายกับคำถามนี้:

แปลง PDF เป็น greyscale บนบรรทัดคำสั่งใน FLOSS หรือไม่

ฉันมีเอกสาร PDF และต้องการแปลงเป็นขาวดำบริสุทธิ์ ดังนั้นฉันต้องการทิ้ง halftones หากต้องการแปลงเป็นสีเทาด้วย ghostscript ฉันสามารถใช้คำสั่งนี้:

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

ฉันต้องเปลี่ยนอะไรเพื่อให้ได้เอกรงค์เช่นสีดำและขาวและไม่มีฮาล์ฟโทน?

คำตอบ:


6

ข้อเสนอแนะที่ผ่านมาแน่นอนเพียง แต่จะแปลงไปเป็นสีเทาแล้วทำงานได้เฉพาะในกรณีที่ใช้พื้นฐาน doc setrgbcolor เรื่องนี้ไม่ได้ทำงานสำหรับฉันตั้งแต่ฉันได้เอกสารที่สินค้าsetColor

ฉันประสบความสำเร็จกับการกำหนดsetcolorใหม่เพื่อกำหนดสีเป็น 0,0,0 เสมอ:

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

เป็นเวลากว่า 15 ปีแล้วที่ฉันทำการแฮ็ก PostScript ดังนั้นสิ่งที่กล่าวมาข้างต้นอาจไม่ถูกต้องไม่ถูกต้องหรือไม่ได้ตั้งใจ - ถ้าคุณรู้วิธีที่จะทำได้ดีขึ้นโปรดแนะนำ


3

ฉันไม่แน่ใจว่าคำแนะนำต่อไปนี้ใช้ได้ผลหรือไม่ แต่ควรลองดู:

  1. แปลง PDF เป็น PostScript โดยใช้pdf2psยูทิลิตี้ง่าย ๆ
  2. แปลง PostScript นั้นกลับเป็น PDF ในขณะที่ใช้/setrgbcolorโอเปอเรเตอร์ PostScript ที่กำหนดใหม่

เหล่านี้คือคำสั่ง:

เป็นครั้งแรก

  pdf2ps color.pdf color.ps

สิ่งนี้ให้คุณcolor.psเป็นเอาท์พุท

ที่สอง

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

ฉันลองมันแล้วก็ยังเหลือด้วยเฉดสีเทา niklasfi ต้องการขาวดำ
frabjous

3

มันไม่ใช่ Ghostscript แต่ด้วย imagemagick นี่ค่อนข้างง่าย:

 convert -monochrome input.pdf output.pdf

10
คุณภาพของไฟล์ PDF ที่ได้นั้นแย่กว่าต้นฉบับมาก
Hindol

convert -monochrome -denisty 600?
Ilia w495 Nikitin

ดูเหมือนว่าจะทำครึ่งแรก ฉันต้องการให้ทุกสี (แต่สีขาว) ถูกแปลงเป็นสีดำโดยไม่คำนึงถึงความมืด
g.rocket

2

สำหรับ PDF ระดับสีเทา:

โดยใช้ GhostScript

ในรหัส PHP ให้ใช้สคริปต์นี้

exec("'gs' '-sOutputFile=outputfilename.pdf' '-sDEVICE=pdfwrite' '-sColorConversionStrategy=Gray' '-dProcessColorModel=/DeviceGray' '-dCompatibilityLevel=1.4'  'inputfilename.pdf'",$output);

url ที่เป็นประโยชน์
http://www.linuxjournal.com/content/tech-tip-using-ghostscript-convert-and-combine-files


1

ดูเหมือนว่าจะใช้งานได้:

1) แปลงไฟล์เป็นขาวดำด้วย gs

gs -sDEVICE=psmono \
  -dNOPAUSE -dBATCH -dSAFER \
  -sOutputFile=combined.ps \
  first.pdf \
  second.ps \
  third.eps [...]

3) แปลงไฟล์ Postscript กลับเป็น PDF ด้วยps2pdfหรือgs

(เครดิตไปที่: http://www.linuxjournal.com/content/tech-tip-using-ghostscript-convert-and-combine-files )


0

สำหรับ PDF ขาวดำที่บริสุทธิ์คุณต้องแปลงเป็นรูปแบบ ps จากนั้นเป็น PDF สำหรับ postscript:

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

postscript เป็น PDF -> ขาวดำ

exec(" gs -sDEVICE=pdfwrite   -dNOPAUSE -dBATCH -dSAFER  -sOutputFile=file_pdf.pdf  filename.ps");
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.