当我们使用ITextRenderer从百万富翁HTML模板生成PDF时,如何设置PDF页面大小A4?

时间:2018-01-24 12:23:26

标签: java itext thymeleaf itext7

当我们使用ITextRenderer从thymeleaf HTML模板生成PDF时,如何设置PDF页面大小A4?

我已生成PDF但页面大小不合适,如何在JAVA中设置页面大小A4 ITextRenderer库

    ClassLoaderTemplateResolver templateResolver = new 
    ClassLoaderTemplateResolver();
    templateResolver.setSuffix(".html");
    templateResolver.setTemplateMode("HTML5");

    TemplateEngine templateEngine = new TemplateEngine();
    templateEngine.setTemplateResolver(templateResolver);

    Context context = new Context();
    context.setVariable("name", "Thomas");

    String html = templateEngine.process("templates/Quote", context);

    OutputStream outputStream = new FileOutputStream("message.pdf");
    ITextRenderer renderer = new ITextRenderer();
    renderer.setDocumentFromString(html);
    renderer.layout();
    renderer.createPDF(outputStream,true);
    outputStream.close();

1 个答案:

答案 0 :(得分:4)

请注意,您使用的是FlyingSaucer,而不是iTextFlyingSaucer是一种内部使用的产品(非常旧版本)iText

你正在立即摆脱10多年的错误修正和发展。

如果您对iText感到满意,解决此问题的最佳方法是使用pdfHTML。

它是我们写给iText7核心库的附加组件,专门用于将HTML转换为PDF格式。

简单示例:

    File src = new File("source_html_file.html");
    File dest = new File("target_pdf_file.pdf");

    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    Document doc = new Document(pdf, PageSize.A4);
    InputStream stream = new FileInputStream(src);

    ConverterProperties converterProperties = new ConverterProperties();
    FontProvider dfp = new DefaultFontProvider(true, true, true);
    converterProperties.setFontProvider(dfp);

    HtmlConverter.convertToPdf(stream, pdf, converterProperties);

在线查看教程以获取更多信息 https://developers.itextpdf.com/content/itext-7-examples/itext-7-converting-html-pdf