XSL FO如何处理javascript脚本

How does XSL FO process javascript scripts?

本文关键字:处理 javascript 脚本 FO 何处理 XSL      更新时间:2023-09-26

一段时间以来,我一直在尝试找到一种方法,在XSL FO模板中使用javascript脚本来生成PDF。经过大量的挖掘,我开始意识到这可能是不可能的,因为正如我所理解的,将XML数据转换为呈现的PDF表单的操作顺序是

XML->XSL(转换)->FO(应用格式化)->PDF呈现引擎->PDF

我的问题是,javascript执行在这个管道中适合哪里?很明显,脚本是在xsl转换完成后执行的,这就是为什么很多人会遇到基于浏览器的xsl转换的复杂性,但如果javascript部分在xsl变换之后但在应用FO格式之前执行,那么从技术上讲,是否应该有一种方法仍然让javascript脚本执行一些操作,比如更新xsl-fo文档中的一个参数,该参数将被fo阶段合并,从而输出到PDF中以供查看?

您将浏览器与格式化引擎混淆了。格式化引擎接受输入并进行打印输出(不是交互式输出)。您可以将代码放在Java或.NET中(取决于您的XSLT引擎),以便在XSL FO到达格式化引擎之前对其进行修改。。。或者(如果你的FO引擎支持它)将Javascript嵌入到最终输出中(显然只有PDF),以修改查看时发生的事情。没有XSL FO引擎(据我所知)会在流程管道中支持Javascript——这是一个服务器流程,Javascript不会(正常)执行(因为它不在你的浏览器中)。