我正在使用Batik(1.8)将SVG转换为插件中的PNG。我的一个客户有一个SVG(剪下来见下文),它使用XHTML作为SVG内的文本元素。这些文本元素未显示在栅格化的PNG中。
进一步的细节:显然Batik将所需的特性(可扩展性)评估为true,然后尝试处理XHTML部分 - 它不使用foreignObject之外的回退。然而,由于没有显示文本,因此XHTML部分的处理不成功。没有例外等。使用的代码几乎是标准代码,如Batik示例中所示。我可以做些什么来让Batik显示文字?
感谢您提供任何提示,
安德烈亚斯
<!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" xmlns:xlink="http://www.w3.org/1999/xlink" width="300px" height="167px" version="1.1" style="background-color: rgb(255, 255, 255);">
<defs/>
<g transform="translate(0.5,0.5)"><rect x="1" y="47" width="120" height="60" fill="none" stroke="#000000" stroke-dasharray="3 3" pointer-events="none"/>
<g transform="translate(49.5,70.5)">
<switch><foreignObject style="overflow:visible;" pointer-events="all" width="22" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 24px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Test</div></div></foreignObject><text x="11" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Test</text></switch></g>
</g></svg>