SVGをPDFとPNGへ変換する方法【Python】


はじめに

SVGをPNGに変換したいと思い、CairoSVGを試してみたのですが、svglibの方が簡単に変換できることに気づいたため、その手法を紹介します。

実行環境 / Requirement

  • macOS Catalina (v10.15.7)
  • Python v3.6.5
  • pip 20.3.3

実行手法 / Usage

1. svglibのインストール

まずpip install svglibを実行して、svglibをインストールしましょう。

2. Pythonファイルの作成

次に、以下のようなPythonファイルを作成しましょう。

svg2png.py
from svglib.svglib import svg2rlg
from reportlab.graphics import renderPDF, renderPM
import sys
import os

args = sys.argv
filename = args[1]
filename_without_ext = os.path.splitext(os.path.basename(filename))[0]

drawing = svg2rlg(filename)
renderPDF.drawToFile(drawing, filename_without_ext + ".pdf")
drawing = svg2rlg(filename)
renderPM.drawToFile(drawing, filename_without_ext + ".png", fmt="PNG")

3. コマンドの実行

Terminalやコマンドプロンプトなどを開き、以下のようにSVGファイルを指定して、実行します。

python svg2png.py sample.svg

以下のようにPNGとPDFファイルが生成されれば、変換成功です!

最後に

いかがだったでしょうか?
もしもうまく変換できれば、幸いです。

Githubにもレポジトリを作成したため、もし良ければこちらもご利用くださいm(_ _)m
https://github.com/Masumi-M/svg2png