之前使用 itextpdf5 html 转 pdf,发现有些 css 样式在转换后会缺失,现在升级一下版本,itextpdf7 升级之后,改动挺大的,基本上重构了,但确实好使了
安装
官方文档:
/home/it7kb/examples/header-and-footer-examples
/itext/i7js-examples/tree/develop/src/main/java/com/itextpdf/samples
<dependency><groupId>com.itextpdf</groupId><artifactId>html2pdf</artifactId><version>4.0.2</version></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();
代码
/zhaomingjian/workspace_demo/tree/master/html2pdf-itext7-demo