0

我正在使用 Apache FOP 生成 PDF。我的数据在 XML 文件中,我使用 XSL 样式表来呈现它。我在样式表中使用 SVG 时遇到问题。我创建了一个 SVG,它是

<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.0" width="400" height="400" id="svg2">
<path d="M200,200  L390,200  A190,190 0 0,1 200,390  z"  fill="red" stroke="black" stroke-width="2"  fill-opacity="0.5" stroke-linejoin="round" />
<path d="M200,200  L200,390  A190,190 0 0,1 10,200  z"  fill="orange" stroke="black" stroke-width="2"  fill-opacity="0.5" stroke-linejoin="round" />
<path d="M200,200  L10,200  A190,190 0 0,1 200,10  z"  fill="yellow" stroke="black" stroke-width="2"  fill-opacity="0.5" stroke-linejoin="round" />
<path d="M200,200  L200,10  A190,190 0 0,1 390,200  z"  fill="green" stroke="black" stroke-width="2"  fill-opacity="0.5" stroke-linejoin="round" />
</svg>

但是我如何把它放在样式表中。我试过把它放在一个<fo:instream-foreign-object>喜欢的地方

<fo:instream-foreign-object  xmlns:svg="http://www.w3.org/2000/svg">
    <svg:svg width="400" height="400">
    <svg:path d="M200,200  L390,200  A190,190 0 0,1 200,390  z"  fill="red" stroke="black" stroke-width="2"  fill-opacity="0.5" stroke-linejoin="round" />
...
    </svg:svg>
</fo:instream-foreign-object>

但这不起作用。有谁知道我做错了什么?

4

2 回答 2

0

他是我在 FOP 中将 SVG 作为字母大小背景的示例(带有文本“背景区域”):

  <fo:block-container absolute-position="absolute"
        top="0in" left="0in" width="8.5in" height="11in"
        content-height="scale-to-fit"  content-width="scale-to-fit" 
        scaling="non-uniform"
        background-position="center"  background-repeat="no-repeat"
        background-image="url(your_xml_file.svg)">
    <fo:block>background region
    </fo:block>
  </fo:block-container>
于 2013-07-12T19:13:52.780 回答
0

事实证明我做错了。正确的做法是,而不是做

<svg:path stroke="black" stroke-width="2"  fill-opacity="0.5" stroke-linejoin="round" />

您需要像这样绘制路径

<svg:path stroke="black" stroke-width="2"  fill-opacity="0.5" stroke-linejoin="round">
    <xsl:attribute name="fill">red</xsl:attribute>
    <xsl:attribute name="d">M200,200  L390,200  A190,190 0 0,1 200,390  z</xsl:attribute>
</svg:path>
于 2013-07-15T10:36:27.230 回答