有没有人有将XML转换为PDF的实际经验?

有没有人有将XML转换为PDF的实际经验?,xml,xslt,pdf,Xml,Xslt,Pdf,我有一个项目,客户希望从XML数据集中提供PDF文档。我已经使用XSLT很多年了,但从未创建过PDF。我已经使用XSLT生成了新的XML和HTML,但从来没有生成过PDF。您必须执行两步方法,首先应用xsl-fo转换,创建特定的fo标记,然后通过fo-to-PDF流程运行它。 下面是我用于此目的的一段VB代码,以及一小段xsl fo “转换以创建fo文件 foName=“C:\test\foName\u test.fo” xslName=“C:\test\xhtml2fo.xslt” 调用转换(

我有一个项目,客户希望从XML数据集中提供PDF文档。我已经使用XSLT很多年了,但从未创建过PDF。我已经使用XSLT生成了新的XML和HTML,但从来没有生成过PDF。

您必须执行两步方法,首先应用xsl-fo转换,创建特定的fo标记,然后通过fo-to-PDF流程运行它。
下面是我用于此目的的一段VB代码,以及一小段xsl fo

“转换以创建fo文件
foName=“C:\test\foName\u test.fo”
xslName=“C:\test\xhtml2fo.xslt”
调用转换(flName、xslName、foName)
'调用FOP PDF生成器
Set shell=CreateObject(“WScript.shell”)
pdfName=“C:\test\foName\u test.pdf”
cmd=“java-Dfop.home=C:\fop-cp C:\fop\build\fop.jar org.apache.fop.cli.Main-fo”&foName&“-pdf”&pdfName
调用shell.Run(cmd,vbWindowFrame,True)
私有子转换(源文件、样式表文件、结果文件)
Dim源作为新的MSXML2.DOMDocument60
Dim样式表作为新的MSXML2.DOMDocument60
Dim结果为新的MSXML2.DOMDocument60
Dim objStream作为新的ADODB.Stream
作为字符串的Dim msg
对象流。打开
objStream.Position=0
objStream.Charset=“utf-8”
objStream.LoadFromFile(源文件)
'加载数据
source.async=False
source.loadXML(objStream.ReadText())
'加载样式表
stylesheet.async=False
加载样式表文件
“进行转换
source.transformNodeToObject样式表,结果
结果。保存结果文件
端接头
XSLT代码段:



您还可以使用TeX将XML转换为PDF。您可以使用或。请参阅。

这可能会有所帮助。@DaveM Good link Dave-我在制定答案时没有注意到你的评论!您可以使用在线Api,谢谢您的回复。在此期间,我一直在从事其他项目。我会检查你的答案,看看它们是否适用于我的项目。我们现在正在研究JavaScript+XML方法,这似乎更容易实现。谢谢