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>
これは私が変換に使用したコードです(svglib
Webページから取得)。
>>> 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はプロットと同じサイズになりますautoSize
。1
問題は、svgファイルにサイズパラメータがないことです。たとえば、svg
開始タグを次のように変更できます。
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1000px" width="1000px">
使用しなくても同様の(目に見える)結果が得られます。autoSize=0