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


81

Tôi có một tệp PDF màu, và tôi sẽ in nó ra và sau đó sao chép nó thành màu đen và trắng. Tôi muốn biết nó như thế nào trong B & W trước khi sao chép nó. Có thể 'thang độ xám' một tệp PDF trên dòng lệnh bằng phần mềm miễn phí không? Tôi đang sử dụng Ubuntu 9.10.

Câu trả lời:


36

ImageMagick có thể làm điều này.

convert -colorspace GRAY color.pdf gray.pdf

qua email này


27
Điều đó làm giảm đáng kể chất lượng. @goyinux 'giải pháp tốt hơn.
Julian Weiss

7
Chuyển đổi sẽ thực sự rasterize nội dung của pdf. Vì vậy, trừ khi pdf đã chỉ gói gọn các hình ảnh raster (ví dụ: tài liệu được quét), phương pháp này là không có.
m000

2
Trừ khi bạn sử dụng -density 400 -quality 100các tham số - hoạt động tốt
burtek

2
Thực sự, có điều gì ImageMagick không thể làm? :)
BalinKingOfMoria

-density 400 -quality 100tạo tập tin HUGE. +1 cho giải pháp của @ goyinux.
Stanimir Stoyanov

156

Tốt hơn:

gs \
 -sOutputFile=output.pdf \
 -sDEVICE=pdfwrite \
 -sColorConversionStrategy=Gray \
 -dProcessColorModel=/DeviceGray \
 -dCompatibilityLevel=1.4 \
 -dNOPAUSE \
 -dBATCH \
 input.pdf

1
Đồng ý, điều này cho kết quả tốt hơn nhiều so với chuyển đổi, nhưng đôi khi nó xoay pdf gây khó chịu một chút!
tdc

9
Chỉ cần nhận ra rằng bạn có thể vô hiệu hóa điều đó với-dAutoRotatePages=/None
tdc

1
Tôi vừa chạy lệnh này trên một tệp PDF 58 MB đã có màu xám (đến từ máy quét) và kết quả đầu ra là 10 MB và trông giống hệt nhau. Đẹp!
Archie

1
Hoạt động tốt trên Windows, quá! Chỉ cần xóa `\` và đặt mọi thứ trên cùng một dòng.
ixe013

1
Trên thực tế, điều này không thành công với lỗi nàyGPL Ghostscript 9.10: Unable to convert color space to Gray, reverting strategy to LeaveColorUnchanged.
jjmerelo

13

Đây là một đoạn script nhỏ ngoài chuyển đổi thang độ xám có thể ghép nhiều tệp đầu vào. Để sử dụng tập lệnh, hãy đặt các dòng sau vào một tệp, ví dụ: "convert2gray.sh"

#!/bin/bash
gs -sOutputFile=converted.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibiltyLevel=1.4 -dNOPAUSE -dBATCH $@

và làm cho nó thực thi

chmod +x convert2gray.sh

Sau đó

./convert2gray.sh input1.pdf input2.pdf … lastinput.pdf

sẽ tạo một tệp PDF "convert.pdf" duy nhất, chứa tất cả các trang từ các tệp đầu vào được chuyển đổi sang thang độ xám.

Tôi đã phải in ra tất cả các tập tin đa dạng trong thang độ xám và thấy đây là cách dễ nhất, vì bạn có thể in ra mọi thứ sau khi inpection bằng một lệnh.


FWIW, pdftk cũng có thể ghép các tệp PDF.
dùng1338062
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.