この質問と同様に:
PDFドキュメントがあり、それを純粋な白黒に変換したい。だからハーフトーンを捨てたい。 ghostscriptでグレースケールに変換するには、次のコマンドを使用できます。
gs \
-sOutputFile=output.PDF \
-sDEVICE=pdfwrite \
-sColorConversionStrategy=Gray \
-dProcessColorModel=/DeviceGray \
-dCompatibilityLevel=1.4 \
input.PDF < /dev/null
モノクロを取得するには何を変更する必要がありますか。白黒のみで、ハーフトーンはありませんか?
最後の提案は確かにグレースケールにのみ変換され、基礎となるドキュメントが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>
私がPostScriptのハッキングを行ってから15年以上が経過しているため、上記は不十分、不正確、または偶然である可能性があります。
次の提案が機能するかどうかはわかりませんが、試してみる価値はあります。
pdf2ps
ユーティリティを使用してPDFをPostScriptに変換します/setrgbcolor
PostScript演算子を使用しながら、そのPostScriptをPDFに変換し直すこれらはコマンドです:
最初
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
これはゴーストスクリプトではありませんが、imagemagickではこれは非常に簡単です。
convert -monochrome input.pdf output.pdf
グレースケールPDFの場合:
GhostScriptを使用する
IN 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)gs
を使用してファイルをモノクロに変換します
gs -sDEVICE=psmono \
-dNOPAUSE -dBATCH -dSAFER \
-sOutputFile=combined.ps \
first.pdf \
second.ps \
third.eps [...]
3)PostscriptファイルをPDF with ps2pdf
またはgs
(クレジット: http://www.linuxjournal.com/content/tech-tip-using-ghostscript-convert-and-combine-files )
純粋な白黒PDFの場合、ps形式に変換してから、PDF postscriptに変換する必要があります。
exec(" gs -sDEVICE=psmono -dNOPAUSE -dBATCH -dSAFER -sOutputFile=combined.ps $pdf");
PDF->白黒への追記
exec(" gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=file_pdf.pdf filename.ps");