2

我试图测试使用 JavaScript 脚本在 PDF 渲染器(特别是 Apache FOP)处理时向模板添加内容。我知道 XSL 可以调用一个 javascript 文件,该文件又可以调用

document.write("<p>some text</p>");

可以在网络浏览器中轻松显示。您的 javascript 函数是否可以在文档中写入更像

document.write("<fo:block>some text</fo:block>");

这样 Apache FOP 将能够在输出 PDF 中处理和显示该块?

4

1 回答 1

0

document.writedocument是浏览器在text/html文档中向脚本公开的对象的一种方法。XSLT 无权访问该文档对象及其方法,即使在浏览器中完成客户端 XSLT 也是如此。您唯一的选择是让 XSLT 生成一个 HTML 结果文档,然后使用脚本来处理document.write某些内容。即使这样也受到限制,例如 Mozilla 浏览器不支持document.writeXSLT 转换的结果文档,请参阅https://developer.mozilla.org/en/docs/XSL_Transformations_in_Mozilla_FAQ#What_about_document.write.3F

至于带有 Apache FOP 的 Javascript,不,我认为没有任何可用的文档对象。而且我不确定为什么需要脚本来创建fo:block元素,使用 XSLT 就足以使用文字结果元素,例如

<xsl:template match="foo">
  <fo:block>some text</fo:block>
</xsl:template>
于 2013-08-15T18:11:52.697 回答