资源简介
用itext方法生成与Word一样的目录
代码片段和文件信息
package com.annoroad.test;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.linkedHashMap;
import java.util.List;
import java.util.Map;
import com.itextpdf.text.Chapter;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Section;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfPageEventHelper;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.draw.DottedLineSeparator;
/**
* @author youxingyang
* @Date 2017-5-8 上午9:19:30
*/
public class pdfIndex {
/**
* EventListner for Content
*/
private static class ContentEvent extends PdfPageEventHelper {
private int page;
Map index = new linkedHashMap();
@Override
public void onstartPage (PdfWriter writer Document document) {
page++;
}
@Override
public void onChapter (PdfWriter writer Document document float paragraphPosition Paragraph title) {
index.put(title.getContent() page);
}
@Override
public void onSection (PdfWriter writer Document document float paragraphPosition int depth Paragraph title) {
onChapter(writer document paragraphPosition title);
}
}
/**
* EventListner for Index
*/
private static class IndexEvent extends PdfPageEventHelper {
private int page;
private boolean body;
@Override
public void onEndPage (PdfWriter writer Document document) {
// set page number on content
if (body) {
page++;
ColumnText.showTextAligned(writer.getDirectContent() Element.ALIGN_CENTER new Phrase(page + ““)
(document.right() + document.left()) / 2 document.bottom() - 18 0);
}
}
}
public static void main(String[] args) throws Exception {
// make content pdf (calculate page number)
Document content = new Document(PageSize.A4 48 48 60 65);
PdfWriter contentWriter = PdfWriter.getInstance(content new ByteArrayOutputStream());
//设置事件
ContentEvent event = new ContentEvent();
contentWriter.setPageEvent(event);
content.open();
List chapterList = new ArrayList();
for (int i = 1; i <= 10; i++) {
Chunk chaptitle = new Chunk(“The “+ i + “ chapter“);
Chapter chapter = new Chapter(new Paragraph(chaptitle) i);
chaptitle.setLocalDestination(chapter.gettitle().getContent());
for (int j = 0; j < 2; j++) {
- 上一篇:java版 跳棋源码swing
- 下一篇:android触摸屏测试程序demo
相关资源
- java 毕业设计 进销存管理系统 源码
- itext最新jar包及textAsian无错误版本
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
评论
共有 条评论