Java XSLT中的页脚(xml html pdf转换)
有没有办法使用xslt转换在生成的pdf文件上添加页脚 我使用以下代码将对象转换为xml、xml转换为html和html转换为pdf:Java XSLT中的页脚(xml html pdf转换),java,xslt,Java,Xslt,有没有办法使用xslt转换在生成的pdf文件上添加页脚 我使用以下代码将对象转换为xml、xml转换为html和html转换为pdf: ObjectModel obj = new Object(); File file = new File("test.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(ObjectModel.class); Marshaller jaxbMarshaller = ja
ObjectModel obj = new Object();
File file = new File("test.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(ObjectModel.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
// output pretty printed
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(obj, file);
jaxbMarshaller.marshal(obj, System.out);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource("cert.xsl"));
transformer.transform(new StreamSource("test.xml"),new StreamResult(new FileOutputStream("sample.html")));
String File_To_Convert = "sample.html";
String url = new File(File_To_Convert).toURI().toURL().toString();
System.out.println(""+url);
String HTML_TO_PDF = "ConvertedFile.pdf";
OutputStream os = new FileOutputStream(HTML_TO_PDF);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
os.close();
xsl文件如下所示:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:java="http://xml.apache.org/xalan/java"
exclude-result-prefixes="java"
version="2.0">
<xsl:output method="xml" indent="yes" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.1//EN"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" omit-xml-declaration="no"/>
<xsl:template match="/">
<html>
<body style="font-family:Book Antiqua;">
//content here
</body>
</html>
</xsl:template>
//满足于此
我想知道在这个转换中是否可以添加页脚。我发现了这一点,但我仍然不知道如何做到这一点。您可以通过进行XML到PDF的直接转换 使用XSL-FO,
静态内容
允许您创建一些页眉和页脚
<fo:page-sequence master-reference="main">
<fo:static-content flow-name="header">
<xsl:call-template name="MyHeader"/>
</fo:static-content>
<fo:static-content flow-name="footer">
<xsl:call-template name="MyFooter"/>
</fo:static-content>
<fo:flow>
...
</fo:flow>
</fo:page-sequence>
...
您可以通过进行XML到PDF的直接转换
使用XSL-FO,静态内容
允许您创建一些页眉和页脚
<fo:page-sequence master-reference="main">
<fo:static-content flow-name="header">
<xsl:call-template name="MyHeader"/>
</fo:static-content>
<fo:static-content flow-name="footer">
<xsl:call-template name="MyFooter"/>
</fo:static-content>
<fo:flow>
...
</fo:flow>
</fo:page-sequence>
...
在查询中添加输入XML文件以解析其静态页脚?还是动态创建?我的意思是:您想添加“Created by XYZ,Manufacturer.com(c)2016”之类的内容,还是包括实际日期、原始文件名之类的内容?您似乎使用XSLT将XML转换为XHTML,然后使用ITextRenderer
软件将XHTML转换为PDF。您可能希望标记与该软件相关的问题。至于(X)HTML和分页媒体,是一种试图指定填充页脚的方法的尝试,我不知道它的支持程度如何,当然也不知道您的软件是否支持它;没有找到一个简洁的示例,但请看这里在查询中添加您的输入XML文件以解析其静态页脚?还是动态创建?我的意思是:您想添加“Created by XYZ,Manufacturer.com(c)2016”之类的内容,还是包括实际日期、原始文件名之类的内容?您似乎使用XSLT将XML转换为XHTML,然后使用ITextRenderer
软件将XHTML转换为PDF。您可能希望标记与该软件相关的问题。至于(X)HTML和分页媒体,是一种试图指定填充页脚的方法的尝试,我不知道它的支持程度如何,当然也不知道您的软件是否支持它;没有找到一个简洁的例子,但请看这里