【发布时间】:2018-05-03 17:04:25
【问题描述】:
我需要从 JSON 生成 PDF。为此,我尝试了以下步骤来生成 PDF,
首先,我将 JSON 解析为 XML,然后从 XML 转换为 HTML,最后从 HTML 生成 PDF。
请在下面找到我的代码。它工作正常。
Transformer transformer;
try {
transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(new File(xslPath)));
} catch (TransformerConfigurationException | TransformerFactoryConfigurationError e1) {
throw ExceptionUtils.handle((Exception) e1);
}
DOMResult result = new DOMResult();
try {
transformer.transform(new StreamSource(new ByteArrayInputStream(xml.toString().getBytes("UTF-8"))), result);
} catch (TransformerException e) {
throw ExceptionUtils.handle(e);
}
ITextRenderer renderer = new ITextRenderer();
try {
renderer.getFontResolver().addFont("C:/WINDOWS/FONTS/ARIAL.TTF", true);
} catch (DocumentException e) {
throw ExceptionUtils.handle(e);
}
Document resultDoc = (Document) result.getNode();
renderer.setDocument(resultDoc, "");
renderer.layout();
它在Portrait 中生成PDF,但是,我希望PDF 应该在Landscape 模式下生成。为此我必须修改HTML 代码位。
我必须集成下面的代码才能在Landscape 模式下制作我的 PDF
XMLResource res = XMLResource
.load(new StringReader("<html><head><style>@page { size : 29.7cm 21cm; }</style></head><body></body></html>"));
但是,我不确定我可以在我现有代码中的何处注入这段代码。
【问题讨论】: