Chuyển đổi PDF sang đen trắng bằng ghostscript


21

Tương tự với câu hỏi này:

Chuyển đổi PDF sang thang độ xám trên dòng lệnh trong FLOSS?

Tôi có một tài liệu PDF và muốn chuyển đổi nó thành màu đen và trắng thuần túy. Vì vậy, tôi muốn loại bỏ Halftones. Để chuyển đổi sang thang độ xám với ghostscript tôi có thể sử dụng lệnh này:

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

Tôi phải thay đổi gì để có được màu đơn sắc, ví dụ như chỉ có các màu đen và trắng và không có nửa tông?

Câu trả lời:


6

Gợi ý cuối cùng thực sự chỉ chuyển đổi sang thang độ xám và sau đó chỉ hoạt động nếu tài liệu cơ bản sử dụng setrgbcolor . Điều này không làm việc cho tôi, vì tôi có một tài liệu, sử dụng setcolor .

Tôi đã thành công với việc xác định lại setcolor để luôn đặt màu thành 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>

Đã hơn 15 năm kể từ khi tôi thực hiện bất kỳ hack PostScript nào, vì vậy những điều trên có thể là khập khiễng, không chính xác hoặc thậm chí là vô tình - nếu bạn biết cách làm tốt hơn, vui lòng đề xuất.


3

Tôi không chắc chắn nếu đề xuất sau đây sẽ hoạt động ... nhưng nó có thể đáng để thử:

  1. chuyển đổi PDF sang PostScript bằng pdf2pstiện ích đơn giản
  2. chuyển đổi PostScript đó thành PDF trong khi sử dụng /setrgbcolortoán tử PostScript được xác định lại

Đây là các lệnh:

Đầu tiên

  pdf2ps color.pdf color.ps

Điều này cung cấp cho bạn color.psnhư đầu ra.

Thứ hai

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

Tôi đã thử điều này và vẫn còn lại với màu xám. niklasfi muốn đơn sắc.
frabjous

3

Nó không phải là ghostscript, nhưng với hình ảnh tưởng tượng thì điều này khá đơn giản:

 convert -monochrome input.pdf output.pdf

10
Chất lượng pdf kết quả kém hơn nhiều so với bản gốc.
Hindol

convert -monochrome -denisty 600?
Ilia w495 Nikitin

Điều này dường như làm nửa chừng; Tôi muốn tất cả các màu (nhưng màu trắng) được chuyển thành màu đen, bất kể bóng tối.
g.rocket



0

Đối với PDF trắng đen thuần túy, bạn cần chuyển đổi nó thành định dạng ps sau đó thành PDF để đăng bài:

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

mô tả thành PDF -> đen trắng

exec(" gs -sDEVICE=pdfwrite   -dNOPAUSE -dBATCH -dSAFER  -sOutputFile=file_pdf.pdf  filename.ps");
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.