LoginSignup
5
4

More than 5 years have passed since last update.

epsをsvgに変換する

Last updated at Posted at 2019-01-31

foobar.epsをfoobar.svgに変換する方法です。
実はepsから直接svgにするのは難しいようなので(後述)、
foobar.eps → foobar.pdf → foobar.svg
というようにpdfを経由します。

オンラインでできるサービスがあるみたいですが、この記事ではコマンドラインでやります。
TeXLive2017以降がインストールしてあれば大丈夫です(多分)。

epsからpdf

まず、epstopdfでfoobar.epsからfoobar.pdfを出力。

epstopdf foobar.eps

pdfからsvg

次に、pdftocairoでfoobar.pdfからfoobar.svgを出力。

pdftocairo -svg foobar.pdf

かんたん!

複数のepsを変換する

ディレクトリに内のepsを一括でsvgにする。

for f in *.eps; do epstopdf $f; done
for f in *.pdf; do pdftocairo -svg $f; done

任意で*.epsとか*.pdfをいい感じにしてください。

複数のepsを変換する:おまけ

最近使ってるXonshで。
正しいXonshの使い方が分からない人が書いたコードなので信用してはいけない。

for s in $(ls *.eps).split():
    !(epstopdf @(s))
    !(pdftocairo -svg @(s.replace('eps','pdf')))

余計なpdfが入ってても大丈夫。

試してみて失敗した方法

Ghostscript

ググるとgsでepsからsvgにする方法が紹介されているページがけっこう出てきます。
TeXLiveにはgswin64c.exeが含まれていますが、PATHを通して外部から使うことは出来ないので、おとなしくインストールしました。
しかし、新しめのGhostscript(gs9.15以降?)ではsvgがサポートされていないらしいです。
参考:http://acetaminophen.hatenablog.com/entry/2015/03/10/154412

dvisvgm

dvisvgm -E foobar.eps

でsvgが出力されるはずなのですが、、エラーが出てしまいます(ERROR: Ghostscript is required to process the EPS file)。
dvisvgm -lでサポートする形式一覧が出力されるのですが、確かにpsが無い。
公式FAQのWhy is dvisvgm’s PostScript support disabled on my machine?に従い、

  • C:\Program Files\gs\gs9.26\binにPATHを通す
  • 環境変数LIBGSを設定する(C:\Program Files\gs\gs9.26\bin\gsdll64.dll)

等を試したのですがだめでした。

参考

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4