FLOSSのコマンドラインでPDFをグレースケールに変換しますか?


81

カラーPDFファイルがあり、それを印刷してから白黒でコピーします。コピーする前に、白黒でどのようなものかを知りたいです。フリーソフトウェアを使用してコマンドラインでPDFを「グレースケール」することは可能ですか?Ubuntu 9.10を使用しています。

回答:


36

ImageMagickはこれを行うことができます。

convert -colorspace GRAY color.pdf gray.pdf

このメール経由


27
これにより、品質が大幅に低下します。@goyinuxのソリューションの方が優れています。
ヨハネスヴァイス

7
Convertは、実際にPDFの内容をラスタライズします。そのため、pdfが既にラスターイメージ(スキャンされたドキュメントなど)のみをカプセル化していない限り、このアプローチは大したことではありません。
m000 14

2
あなたは使用しない限り-density 400 -quality 100うまく機能-パラメータ
burtek

2
本当に、ImageMagickでできないことはありますか?:)
BalinKingOfMoria

-density 400 -quality 100巨大なファイルを作成します。+1 @goyinuxのソリューション。
スタニミルStoyanov

156

より良い:

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

1
同意すると、これは変換よりもはるかに良い結果をもたらしますが、時々PDFを回転させるので少し面倒です!
tdc

9
-dAutoRotatePages=/None
-tdc

1
既にグレースケール(スキャナーから取得)である58MB PDFでこのコマンドを実行したところ、結果の出力は10MBで、まったく同じように見えました。いいね!
アーチー

1
Windowsでもうまく動作します!`\`を削除して、すべてを同じ行に配置してください。
ixe013 14

1
実際、これはこのエラーで失敗しますGPL Ghostscript 9.10: Unable to convert color space to Gray, reverting strategy to LeaveColorUnchanged.
jjmerelo

13

グレースケール変換に加えて、複数の入力ファイルを連結できる小さなスクリプトを次に示します。スクリプトを使用するには、ファイルに次の行を入力します。たとえば、「convert2gray.sh」

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

実行可能にする

chmod +x convert2gray.sh

それから

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

入力ファイルからグレースケールに変換されたすべてのページを含む単一のPDF「converted.pdf」を生成します。

複数のファイルをすべてグレースケールで印刷する必要があり、1つのコマンドで検査後にすべてを印刷できるため、これが最も簡単な方法であることがわかりました。


FWIW、pdftkもPDFを連結できます。
user1338062
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.