资源简介
用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版 跳棋源码swing
- java的23种设计模式视频---免费共享
- 各种Hash函数JAVA版
- java将bmp格式文件转换成jpg
- 中信Java笔试题中信Java笔试题
- 可靠UDP传输(java)
- 一个简单JAVA+SQL的库存管理系统
- Java记事本-Java程序设计作业
- 合肥工业大学Java实验源代码
- EclipseIDEforJavaEEDevelopers百度云地址.t
- 基于Java+sql教师信息管理系统课设报告
- java实现文件复制
- 合工大java程序设计实验,货物管理系
- Java学生成绩管理系统源码.txt
- 分数计算器界面设计
- java电子相册
- java实验七
- 无线温湿度传感器上位机JAVA代码
- ssm框架开发北大青鸟超市后台管理系
- Java_OO作业:简单多项式导函数的求解
- 基于Java打砖块小游戏
- 模拟龟兔赛跑程序
- javax.annotation-api-1.3.jar
- Java+mysql通讯录信息的增删改查
- Java 2实用教程第五版张跃平例题代码
- Java图形用户界面的简易计算器
- jsoup-1.7.3.jar
- java实现docx文档在线编辑docx转html,
- 超市进销存管理系统-学校实训
- 成绩的查询和排序功能实现 java实现
评论
共有 条评论