猿问

使用具有动态页眉和页脚的 itext7 将 HTML 模板转换为 PDF

我尝试使用下面的 HTML 模板使用 iText7 将其转换为 PDF,但页眉和页脚都没有绑定到其预期位置。 使用的示例 我试图避免 @Page 页眉和页脚属性,因为我试图在两个部分中完成适合动态内容的工作,每个部分的扩展空间超过 3 行。


iText代码和结果:


ConverterProperties properties = new ConverterProperties();

//properties.setFontProvider(fontProvider);

properties.setMediaDeviceDescription(new MediaDeviceDescription(MediaType.PRINT));

PdfWriter writer = new PdfWriter("out.pdf");

PdfDocument pdf = new PdfDocument(writer);

pdf.setTagged();

PageSize pageSize = PageSize.LETTER;

pdf.setDefaultPageSize(pageSize);


OutlineHandler outlineHandler = OutlineHandler.createStandardHandler();

properties.setOutlineHandler(outlineHandler);


//html template (templateOutput)

HtmlConverter.convertToPdf(templateOutput, pdf, properties);

byte[] pdfData = byteArrayOutputStream.toByteArray();

pdf.close();

慕哥9229398
浏览 75回答 1
1回答

阿波罗的战车

以下是正确处理的 HTML 示例,pdfHTML并且多行标题按预期完全显示在页面顶部:<!DOCTYPE html><html><head>&nbsp; &nbsp; <style>&nbsp; &nbsp; &nbsp; &nbsp; #header {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; position: running(header);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; @page {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; margin-top: 100px;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @top-center {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; content: element(header);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; </style></head><body><div id="header">Header line 1<br/>Header line 2<br/>Header line 3</div><p>Content of the page</p></body></html>
随时随地看视频慕课网APP

相关分类

Html5
我要回答