当前位置: 首页 > 知识库问答 >
问题:

未使用 Apache FOP 以 PDF 格式呈现的文本路径

龙令雪
2023-03-14

我使用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/text path。

<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>

共有1个答案

都才俊
2023-03-14

根据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>
 类似资料:
  • 我试图通过使用飞碟(9.0.7)库从XHTML生成一个PDF文件。文本和表格按预期呈现,但图像(png)不会显示在最终的PDF中。图像由绝对文件路径引用(例如< code > 我的java代码如下: 任何帮助都将不胜感激。

  • 下面是我调用iText方法的java代码: 有人知道为什么当我把PDF放平时,文本会移动吗?我怎样才能避免这种情况呢? 我allready尝试了iText的不同版本。从版本4.x到5.x。不同之处出现在所有版本中。

  • 我有一个带有永久按钮的网站,供人们下载pdf文档(我的简历)。永久性的意思是,它在网站的导航栏上随时显示,供人们下载。 但是我想控制pdf中包含的内容,所以我决定创建一个新的组件,名为,并使用json文档动态构建最终将被提取为pdf的html。 所以我这样处理这个问题: 添加新的组件到 用隐藏组件,因为我不想让它被看到 点击按钮,触发自定义事件,该事件将被组件拾取,并将触发实际的导出到pdf函数。

  • 问题内容: 如何像使用http://jsonviewer.stack.hu/那样以树状方式渲染JSON ? 问题答案: 您感兴趣的技术是“ 递归指令 ”。如果您尚不知道如何编写指令,则应首先开始学习它。Angular JS官方文档在解释指令创建自定义指令方面做得更好 一旦知道如何编写自定义指令,就可以了解递归指令。我发现此Google网上论坛线程很有帮助:递归指令。尤其是,我发现该线程中的 Mar

  • 我使用docx4j创建pdf文件,使用docx格式可以正确呈现语言环境,但使用pdf#替换为语言环境字符串。 在我看到的文件中 当使用docx4j创建PDF时,它只能使用可用的字体。这些字体有两种来源: - - 请注意,Word会自动执行字体替换。当您在Word中打开现有文档并选择特定字体的文本时,如果您的计算机上没有安装该字体或该字体没有嵌入到文档中,则您在屏幕上看到的实际字体将不是功能区中报告

  • 我曾尝试使用ApacheFop将HTML转换为PDF。(HTML-- 它适用于简单的html文件。 它不适用于带有样式(通过嵌入的css或样式属性)的html文件。PDF已创建,但完全未格式化。我试图转换超文本标记语言文件,我没有太多的样式/内容控制。 在我的用例中,为每个html创建xslt并不实用。 目前,我确实有一个与flyingsaucer一起工作的实现。但是,该要求要求在没有AGPL许可