GhostscriptでPDFのカラーモードをCMYKからRGBへ変換する
PDFのカラーモードをCMYKからRGBに変更したい。
Acrobatを使えばいいけど、Linuxでやりたい。
そんな時はPDFのインタプリタであるGhostscriptを使う。
- インストール方法
gsコマンドが打てる環境になったら、以下のコマンドで変換ができる。
gs -sDEVICE=pdfwrite -sProcessColorModel=DeviceRGB -sColorConversionStrategy=sRGB -sColorConversionStrategyForImages=sRGB -sProcessColorModel=DeviceRGB -o {変換後}.pdf {変換前}.pdf
ドキュメントについては以下のリンク参照
このページでは「ps2pdf」というPostscriptファイルからPDFへの変換スクリプトを紹介しているが、gsコマンドでも同様のことができる模様。
変換できていないケースも
カラーモードを確認するために、ImageMagickを使う。identify
コマンドで以下のように調べられる
$ identify -verbose 'xxx.pdf[0]'
Base filename: xxx.pdf
Format: PDF (Portable Document Format)
Class: DirectClass
Geometry: 595x842+0+0
Resolution: 72x72
Print size: 8.26389x11.6944
Units: Undefined
Type: TrueColorAlpha
Base type: ColorSeparation
Endianess: Undefined
Colorspace: sRGB <- カラーモード記述
...
Colorspaceが sRGBになっていれば変換成功だが、ファイルによってはここがCMYKのままだったりする。日本語の情報が少ないので的を得る情報がなく、トライアンドエラーで色々いじっていたところ、先ほどのgsコマンドに -dPDFA
というオプションを付けると成功した。
しかし、元々6MB程度のファイル容量だったものが、変換後に30MB近くまで肥大化してしまった。この-dPDFA
は、PDF/Aという形式に変換するというオプションだが肥大化は避けたい。
形式は変換させず、単純にカラーモードだけ変換させることはGhostscriptでは難しいのかもしれない。