gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:27:43 26 4
gpt4 key购买 nike

当我们使用 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();

最佳答案

请注意,您使用的是 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

关于java - 当我们使用 ITextRenderer 从 thymeleaf HTML 模板生成 PDF 时,如何设置 PDF 页面大小 A4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48422409/

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