12

Python を使用して SVG 画像から PDF 画像を生成しようとしています。CairoSVGsvglibの両方を試しました。問題は、どちらの場合も、生成された PDF に CSS スタイルが埋め込まれていないことです。

これは、黒い境界線を持つ青い四角形をレンダリングする単純な 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 width="200" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <style type="text/css"><![CDATA[
      rect {
        fill: #1f77b4;
        stroke: black;
        stroke-width: 1;
        shape-rendering: crispEdges;
      }
    ]]></style>
  </defs>
  <rect x="50" y="50" width="100" height="100"></rect>
</svg>

CairoSVG を使用してこの SVG の PDF をレンダリングすると、PDF 画像は黒い四角形としてレンダリングされます。svglib を使用すると、四角形にストロークやスタイルが適用されないため、表示されません。CSS スタイルの SVG をPython で PDF 画像に変換する方法を知っている人はいますか?

4

3 に答える 3

1

代わりに style 属性を使用してみましたか?

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <rect x="50" y="20" width="100" height="100"
  style="fill:#1f77b4;stroke:black;stroke-width:1;shape-rendering: crispEdges;"
  stroke-opacity:0.9"/>
</svg> 

最終的にはこれまでと同じですが、CairoSVG は HTML のスタイル要素をスキップする可能性があります。

于 2013-02-15T21:14:34.990 に答える