ps2epsiでepsを吐いてくれるpythonスクリプト+exe

BBをいい感じにする話

Mon, 05 Jun 2017

ps2epsでBounding Boxがうまく変わらないときの対処

書いたばっかりのこの記事の続きです.

 

ps2epsiは今のところ不具合がないのでps2epsはやめてこっちに移行しようと思います.

 

コマンドラインでprnをepsに吐けるようになったらあとはスクリプト化するだけ.

ということでpythonで作りました.

# Convert PRN to EPS script by ps2epsi

from subprocess import Popen
import os
import sys

if __name__ == '__main__':

    # Get full path
    path = os.path.dirname(sys.argv[0])

    # Make ps path
    file = os.listdir(path+'/ps/')

    # Do ps2epsi
    for num in range(len(file)):

        name, ext = os.path.splitext(file[num])

        cmd = 'ps2epsi ' + path+'/ps/'+file[num] + ' '+ path + '/eps/' +  name + '.eps'

        popen = Popen(cmd, shell=True)

        popen.wait()

 

なんでわざわざフルパス取得してるの~?って感じですが,配布用にこのpythonをexeに変換したくて,その副産物です.

「python prn2epsi.py」で実行するだけなら相対パスで問題ありません.

 

必要条件ですが,

  • Ghostscriptのインストール
  • Ghostscriptのbinとlibにパスを通す(ps2epsiを使えるようにするため)

です.GSView使っていればGhostscriptは入っているのでパスと通すだけです.

binとlibは「Program Files\gs\gs9.21\」にあります.

 

自分用メモ

生成したexeの構成

┗フォルダー
  ┣ prn2eps.exe
  ┣ ps
   ┃ ┗ prnファイル
  ┗eps

って感じに配置してもらって,psファイルに変換したいprnファイルを入れて,exeを実行すればepsフォルダに生成される.

 

おまけ

なんでprnってフォルダにしないの?という疑問には知恵袋で解決してください(笑)

なぜWindowsで「prn」というファイルは作れないのですか? – Windo… – Yahoo!知恵袋

 

© anbalab 2019