【发布时间】:2012-01-25 06:06:07
【问题描述】:
我有一个转换为 xhtml 的 xml 文档。 现在我需要添加打印按钮,它将使用 xsl-fo 转换输出(基于天线室 xhtml2fo.xsl http://www.antennahouse.com/XSLsample/XSLsample.htm)。
这是我想出的,但它似乎没有按预期工作
<script language="JavaScript">
function convert()
{
// Load XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("xhtml2fo.xsl")
// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
// This won't work
xml.load(document.getElementsByTagName('html')[0].outerHTML)
// this prints out html element as expected
//my_window.document.write(document.getElementsByTagName('html')[0].outerHTML)
my_window = window.open("", "mywindow1");
my_window.document.write(xml.transformNode(xsl))
}
</script>
如何在客户端进行此操作?我如何才能进行按需转换工作
【问题讨论】:
-
您的意思是要使用 XSL-FO,并使用 AntennaHouse FO 解析器将其转换为 PDF?为同一页面的 PDF 副本提供下载链接可能更容易。这样您就可以在服务器端完成所有操作,并且您将不依赖于特定于浏览器的插件,甚至不依赖于运行浏览器的操作系统。 ActiveXObject("Microsoft.XMLDOM") 可能无法在任何地方工作。
标签: javascript xhtml xslt xsl-fo