itextpdf7 使用之 html 转 pdf 页眉页脚带图片

之前使用 itextpdf5 html 转 pdf,发现有些 css 样式在转换后会缺失,现在升级一下版本,itextpdf7 升级之后,改动挺大的,基本上重构了,但确实好使了

安装

官方文档:
https://kb.itextpdf.com/home/it7kb/examples/header-and-footer-examples
https://github.com/itext/i7js-examples/tree/develop/src/main/java/com/itextpdf/samples

        <dependency>
            <groupId>com.itextpdfgroupId>
            <artifactId>html2pdfartifactId>
            <version>4.0.2version>
        dependency>

创建

创建一个 PdfDocument 且大小为 A4 纸张大小

PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outputStream));
pdfDoc.setDefaultPageSize(PageSize.A4);

页眉/页脚

实现 IEventHandler 类,重写 handleEvent 方法,Canvas 类指定页眉或者页脚位置和内容,可以是图片或文字

pdfDoc.addEventHandler(PdfDocumentEvent.END_PAGE, headerFooterHandler);

自定义字体

FontProvider 可以 add 多个 PdfFont 字体,实现字体包需求

properties.setFontProvider(fontProvider);

Html2Pdf

inputHtml:静态 html 字符
pdfDoc:上面创建的 pdf 载体
properties:自定义字体等

Document doc = HtmlConverter.convertToDocument(inputHtml, pdfDoc, properties);

页边距

doc.setTopMargin(100);
doc.setBottomMargin(100);
doc.setLeftMargin(0);
doc.setRightMargin(0);

关闭流

doc.close();

代码

https://gitee.com/zhaomingjian/workspace_demo/tree/master/html2pdf-itext7-demo

你可能感兴趣的:(Spring,Boot,html,pdf,itext)