iText5/iText7添加书签对比
iText5/iText7添加书签对比
iText5和iText7添加书签都是使用PdfOutline对象,不同之处在于,iText5使用PdfWriter添加,iText7使用PdfDocument添加,所以使用的api会有点差异。
下面以为第一页做书签为例子
对比版本
iText5添加书签
Document docment = new Documnet(PageSize.A4);
PdfWriter writer = PdfWriter.getInstance(docment, new FileOutputStream(pdfPath));
docment.open();
//获取根书签
PdfOutline baseOutline = pdfWriter.getRootOutline();
//设置书签动作
PdfAction action = PadAction.getoLocalPage(1, new PdfDestination(PdfDestination.FIT), writer);
PdfOutline pageOutline = new PdfOutline(baseOutline, action, "第一页", false);
docment.close();
iText7添加书签
PdfWriter writer = PdfWriter.getInstance(docment, new FileOutputStream(pdfPath));
PdfDocument pdfDoc = new PdfDocument(writer);
Document docment = new Documnet(pdfDoc);
PdfPage page = pdfDoc.getPage(1);
//获取根书签
PdfOutline baseOutline = pdfDoc.getOutlines();
//设置书签动作
PdfAction action = PadAction.createGoTo(PdfExplicitDestination.createFitH(page, 0));
PdfOutline pageOutline = baseOutline.addOutline( "第一页");
//是默认展开
pageOutline.setOpen(false);
//添加动作到书签对象
pageOutline.addAction(action);
docment.close();