TextPath 未使用 Apache FOP 在 PDF 中呈现

TextPath not rendered in PDF using Apache FOP

我正在使用 Apache FOP 生成 PDF,有些页面需要 SVG。在大多数情况下,在我添加 TextPath 元素之前这一切正常。我正在使用它来获取弯曲的文本。此 SVG 在浏览器中有效,但在 PDF 中无效。维基百科显示 Batik(Apache FOP 的 SVG 渲染器)与 TextPath 兼容:https://en.wikipedia.org/wiki/Comparison_of_layout_engines_(Scalable_Vector_Graphics)。但是运气不好。

如有任何帮助,我们将不胜感激。注意:我有意尝试添加文本而不是光栅化图像,因为文本正在本地化和注入。

这是一个 svg 示例,可以在此处找到:https://developer.mozilla.org/en-US/docs/Web/SVG/Element/textPath

<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <path id="MyPath" fill="none" stroke="red"
        d="M10,90 Q90,90 90,45 Q90,10 50,10 Q10,10 10,40 Q10,70 45,70 Q70,70 75,50" />

  <text>
    <textPath href="#MyPath"> <!-- works if I remove this line -->
      Quick brown fox jumps over the lazy dog.
    </textPath> <!-- and this line -->
  </text>

</svg>

根据 SVG 1.1 推荐,xlink:href 应该用来引用 path 元素。参见 https://www.w3.org/TR/SVG11/text.html#TextPathElement

下图显示在 Squiggle GUI (Batik 1.12)、Firefox 和 Chrome。

<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"
                           xmlns:xlink="http://www.w3.org/1999/xlink">

  <path id="MyPath" fill="none" stroke="red"
        d="M10,90 Q90,90 90,45 Q90,10 50,10 Q10,10 10,40 Q10,70 45,70 Q70,70 75,50" />

  <text>
    <textPath xlink:href="#MyPath">
      Quick brown fox jumps over the lazy dog.
    </textPath>
  </text>

</svg>