【问题标题】:Generating PDF from JSON using java使用java从JSON生成PDF
【发布时间】: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>"));

但是,我不确定我可以在我现有代码中的何处注入这段代码。

【问题讨论】:

    标签: java html json xml xslt


    【解决方案1】:

    将这些样式添加到您正在构建的 Xhtml 的头部

    1: 肖像:@page {size: 字母肖像;}

    2:横向:@page {大小:字母横向;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      • 2012-05-17
      • 2016-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多