WindowsでpptxからEPSを作る場合,EPSプリンタでファイル出力した後にGhostviewからbounding boxを設定するという方法があるが,毎回Ghostviewを開くのはけっこう面倒.
Epstoolというのを使えばコマンドラインから自動調節できるらしいが,自分の環境ではうまく動かなかった.
そこで,ghostscriptのコマンドを使ってbounding boxを自動調節するバッチを作った.
ghostscriptのオプションで「-sDEVICE=bbox」とすると,指定したソースファイルのbounding boxを(必要最小限な領域で)計算して返してくれる.
gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=bbox <ファイル名> |
その結果を使って,EPSファイルの中身を書き換えれば良い.
書き換えはただのテキスト置換なので,いくらでもやりようはあると思う
@echo off setlocal enabledelayedexpansion set currentpath=%cd% set /p src_filename="Source File Name: " set /p dst_filename="New File Name: " gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=bbox %src_filename% 2> tmp.txt set /p bbox=”” < tmp.txt del tmp.txt <src_filename内の「%%BoundingBox:」で始まる行を変数bboxの値で置き換えてdst_filenameに書き出す処理> endlocal pause |
EPSファイル書き換えの注意点として,EPSファイル冒頭部に「%%BoundingBox: (atend)」から始まる行がある場合,bounding boxはファイル末尾に記載されているため,そちらを書き換える必要がある.(冒頭部は書き換えない)