それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

WindowsにGhostScriptを入れてPDFをJPEGに分割する。

スキャンスナップでスキャンしているが、PDFのままだと、アンドロイドで開くと重すぎて不便(300dpiでなく600でスキャンしてるから重いんだろう。)
そこでPDFを分割してJPEG変換を思い立った。

GhostScriptをダウンロード

Ghostscript: Ghostscriptからダウンロード

僕の場合はgs900w32.exe(13-Oct-2010 22:45 15M)を選んだ。w32がwindows用途です

インストールが終ったら実行

"C:\Program Files\gs\gs9.00\bin\gswin32c.exe" 20101005095309.pdf

エラーになる

早速実行したらエラーになって全く進まない。

Can't find CID font "MSMincho".

詳細なエラーは次の通り

>GPL Ghostscript  9.00 (2010-09-14)
>Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
>This software comes with NO WARRANTY: see the file PUBLIC for details.
>Processing pages 1 through 20.
>Page 1
>Can't find CID font "MSMincho".
>Substituting CID font /Adobe-Japan1 for /MSMincho, see doc/Use.htm#CIDFontSubsti
>tution.
>The substitute CID font "Adobe-Japan1" is not provided either. Will exit with er
>ror.
>Error: /undefined in findresource
(中略)
>Current allocation mode is local
>Last OS error: No such file or directory
>GPL Ghostscript  9.00: Unrecoverable error, exit code 1

他のモノも試したが、大体同じエラーになるので、諦めてエラーの詳細を見ていくことにした。
どうやらフォントのエラーであるようです。フォントを見に行って見つからないのでエラーになっている。

ScanSnapで作ったPDFは画像なのでフォント関係ないと思ったけど、Searchable(検索可能)PDFに変換されていたのかもしれない。
OCRで検索可能PDFに変換すると透明レイヤに検索文字を入れているので、見えてないけど文字がある。だからフォントがいるのかも。

font errorに対応する。

Tipsを参考に、ファイルを見てみたら、原因が分かった。フォントの名前が違う・・・たったそれだけか。

C:\Program Files\gs\gs9.00\lib\cidfmap を開いて編集
29:/MS-Mincho << /SubfontID 0 /CSI [(Japan1) 3] /Path (C:/WINDOWS/fonts/msmincho.ttc) /FileType /TrueType >> ;
#追加
30:MSMincho << /SubfontID 0 /CSI [(Japan1) 3] /Path (C:/WINDOWS/fonts/msmincho.ttc) /FileType /TrueType >> ;

見つからないフォントは、MSMinchoだった。設定されてたのはMS-Minchoだった。仕方ないので、29行目をコピーして30行目に別名を追加しておいた。

動かしたら、動いた

"C:\Program Files\gs\gs9.00\bin\gswin32c.exe" 20101005095309.pdf


無事動きました。

変換してみる

"C:\Program Files\gs\gs9.00\bin\gswin32c.exe" -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r300 -sOutputFile=hoge hoge.pdf

出来ました

最後にBatファイルにして出来上がり

@"C:\Program Files\gs\gs9.00\bin\gswin32c.exe" -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r300 -sOutputFile=%1%%03dTo.jpg %1