1
xslt変換を使用して、生成されたpdfファイルにフッターを追加する方法はありますか?XSLTのフッター(xml-html-pdf transormation)
私はPDFへのhtmlとhtmlにXML、オブジェクトをXMLに変換するためにこのコードを使用次のように
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しかし、私はまだそれを行う方法を失った。
入力XMLファイルをクエリに追加して解決します。 – nawazlj
静的フッター?または動的に作成されますか?つまり、「XYZ、Manufacturer.com(c)2016」で作成されたもの、または実際の日付、元のファイル名などを追加するだけですか? – Fildor
XMLをXHTMLに変換するためにXSLTを使用し、XHTMLをPDFに変換するためのいくつかの 'ITextRenderer'ソフトウェアを使用しているようです。そのソフトウェアに関連して質問にタグを付けることができます。 (X)HTMLとページングされたメディアについては、https://www.w3.org/TR/css3-page/#populating-margin-boxesはフッタを設定する方法を指定する試みですが、あなたのソフトウェアがそれをサポートしているかどうかは確かではありません。 –