У меня есть XML-документ, который преобразуется как xhtml. Теперь мне нужно добавить кнопку печати, которая преобразует выходные данные с помощью xsl-fo (на основе антенны xxxx2.2.xsl http://www.antennahouse.com/XSLsample/XSLsample.htm).2nd xslt transform (xhtml to xsl: fo) на стороне клиента
Это то, что я придумал, но это, кажется, не работает, как ожидалось
<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 и преобразовать его в PDF с помощью парсера AntennaHouse FO? Может быть проще просто предоставить ссылку для загрузки для PDF-копии той же страницы. Таким образом, вы можете сделать все это на стороне сервера, и вы не будете зависеть от определенных браузеров плагинов или даже ОС, на которых работает браузер. ActiveXObject («Microsoft.XMLDOM»), вероятно, не будет работать повсюду. – grtjn