PythonでSVGをPDFに変換する[閉じる]

PythonでSVGをPDFに変換する[閉じる]

svglibそしてパッケージを使ってPythonでSVGファイルをPDFに変換しようとしていますreportlab。 SVGファイルです。

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="blue" />
</svg>

これは私が変換に使用したコードです(svglibWebページから取得)。

>>> from svglib.svglib import svg2rlg
>>> from reportlab.graphics import renderPDF
>>> drawing = svg2rlg("file.svg")
>>> renderPDF.drawToFile(drawing, "file.pdf")

コードはエラーや例外なしでうまく実行されますが、file.pdf結果は空のファイルです。つまり、このPDFファイルを開くと、何もない白い背景ページのみが表示されます。

私はどこで間違っていますか?

答え1

最後の行を実行した場合:

renderPDF.drawToFile(drawing, "file.pdf", autoSize=0)

ページにクールな青い丸が表示されます。一般パラメータ値を使用すると、PDFはプロットと同じサイズになりますautoSize1

問題は、svgファイルにサイズパラメータがないことです。たとえば、svg開始タグを次のように変更できます。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1000px" width="1000px">

使用しなくても同様の(目に見える)結果が得られます。autoSize=0

関連情報