gpt4 book ai didi

java - XSLT 中的页脚(xml-html-pdf 转换)

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:57 25 4
gpt4 key购买 nike

有没有办法使用 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 = 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>

我想知道是否可以在此转换中添加页脚。我找到了这个thread但我仍然不知道如何去做。

最佳答案

您可以通过 Apache FOP 直接将 XML 转换为 PDF .

使用 XSL-FO,static-content 允许您制作一些页眉和页脚。

<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>

关于java - XSLT 中的页脚(xml-html-pdf 转换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37851671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com