700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > IText5 怎么设置页眉页脚

IText5 怎么设置页眉页脚

时间:2019-03-19 00:08:09

相关推荐

IText5 怎么设置页眉页脚

最近因为项目需要,加入了iText5来进行PDF的预览导出,功能已经处理完,开始根据项目中实际用到的一些功能进行总结

长话短说,有时间的可以去官网看看相关示例,还是很有帮助的,大部分的问题都可以在官方的demo中找到解决方案

官方页眉页脚示例地址:/en/resources/examples/itext-5-legacy/page-events-headers-and-footers

设置页眉(我这里主要使用的是表格样式页眉页脚,因为比较好扩展,以及调整样式):

public class HeaderHandle extends PdfPageEventHelper {/*** 表格式页眉*/protected PdfPTable headerTable;public HeaderHandle(PdfPTable headerTable) {this.headerTable = headerTable;}public void setHeaderTable(PdfPTable headerTable) {this.headerTable = headerTable;}@Overridepublic void onEndPage(PdfWriter writer, Document document) {// rowEnd为-1 表示写入所有行headerTable.writeSelectedRows(0, -1, document.left()+document.leftMargin()/2, document.top() + headerTable.getTotalHeight(), writer.getDirectContent());}}

设置页脚:

public class FooterHandle extends PdfPageEventHelper {/*** 页脚table*/protected PdfPTable footer;/*** 页脚的高度*/protected float height = 20;public FooterHandle(){}public FooterHandle(PdfPTable footer) {this.footer = footer;}public FooterHandle(PdfPTable footer, float height) {this.footer = footer;this.height = height;}public void setFooter(PdfPTable footer) {this.footer = footer;}public void setHeight(float height) {this.height = height;}@Overridepublic void onStartPage(PdfWriter writer, Document document) {super.onStartPage(writer, document);}@SneakyThrows@Overridepublic void onEndPage(PdfWriter writer, Document document) {footer.writeSelectedRows(0, -1, document.left()+document.leftMargin()/2, document.bottom()-height, writer.getDirectContent());}}

使用实例(重要部分提取出来):

// 因为我们表格比较宽,所以是横向的A4纸,rotate进行旋转Document doc = new Document(PageSize.A4.rotate(),30,30,50,80);PdfWriter writer = PdfWriter.getInstance(doc, response.getOutputStream());// 1、页眉 (因为我的很多表单页眉都是统一的,显示单号 单号条形码 和制单时间,所以公共的地方提取出来相对简单)PdfPTable header = common.makeHeader(obj.getNo(),obj.getCreateTime());writer.setPageEvent(new HeaderHandle(header));// 2、页脚PdfPTable footerTable = new PdfPTable(6);int[] footerWidth = {35,40,50,35,40,50};footerTable.setWidths(footerWidth);footerTable.setFooterRows(1);footerTable.setWidthPercentage(98);FooterHandle footerEvent = new FooterHandle(common.makeFooter(obj,footerTable));writer.setPageEvent(footerEvent);doc.open();

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。