結城浩のはてなブログ

ふと思いついたことをパタパタと書いてます。

PDFやEPSがグレイスケールになっているかどうかを調べる方法(Ghostscriptでinkcovデバイスを使う)

問い

  • PDFやEPSがグレイスケールになっているかどうか調べたい。

答え

  • Ghostscriptでinkcovデバイスを使うとCMYKがわかるのでKだけになっていればグレイスケールです。

詳細

$ gs -q -o - -sDEVICE=inkcov color-file.eps
 0.07787  0.08048  0.08048  0.02049 CMYK OK
$ gs -q -o - -sDEVICE=inkcov gray-file.eps
 0.00000  0.00000  0.00000  0.08466 CMYK OK
#!/usr/bin/env ruby

if ARGV.length != 1
  puts "Usage: cols epsfile"
  puts "Example: cols mathgirl.eps"
  abort
end

system("gs -q -o - -sDEVICE=inkcov #{ARGV[0]}")
  • 実行例
$ cols
Usage: cols epsfile
Example: cols mathgirl.eps
$ cols mathgirl-color.eps
 0.07787  0.08048  0.08048  0.02049 CMYK OK
$ cols mathgirl-gray.eps
 0.00000  0.00000  0.00000  0.08466 CMYK OK

参照