iText制作PDF文件
(三)
锚点、列表和注释
锚点:
package com.java.pdf.third;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import com.itextpdf.text.Anchor;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.pdf.PdfWriter;
/**
* 创建日期:2017-10-9上午10:16:10
* 修改日期:
* 作者:ttan
* 描述:锚点
*/
public class Pdf_setAnchor {
public static void main(String[] args) {
Document document = new Document();
//锚点
Anchor anchor = new Anchor("Super",FontFactory.getFont(
FontFactory.TIMES_ROMAN, 24,Font.UNDERLINE,new BaseColor(0,0,255)));
//设置跳转地址
anchor.setReference("https://www.baidu.com");
//设置名字
anchor.setName("baidu");
Anchor anchor1 = new Anchor("go Baidu",FontFactory.getFont(
FontFactory.HELVETICA, 24,Font.UNDEFINED,new BaseColor(0,0,144)));
//调到名字为baidu的那个锚点 ,在Name前面加上#号,可跳转。
anchor1.setReference("#baidu");
try {
//为该Document创建一个Writer实例
PdfWriter.getInstance(document, new FileOutputStream("setAnchor.pdf"));
document.open();
//添加锚点 链接地址为 www.baidu.com
document.add(anchor);
//新建一页
document.newPage();
//添加锚点 链接到Name为baidu的锚点
document.add(anchor1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}finally{
document.close();
}
}
}
package com.java.pdf.third;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.List;
import com.itextpdf.text.ListItem;
import com.itextpdf.text.pdf.PdfWriter;
/**
* 创建日期:2017-10-9上午10:51:40
* 修改日期:
* 作者:ttan
* 描述:列表
*/
public class Pdf_setList {
public static void main(String[] args) {
Document document = new Document();
//begin 排序的列表
List list = new List(true,20);
list.add(new ListItem("first.."));
list.add(new ListItem("second.."));
list.add(new ListItem("third.."));
//end
//begin 不排序列表
List list1 = new List(false,10);
list1.add(new ListItem("Who I am"));
list1.add(new ListItem("Where We go"));
//修改列表符号为 *
//list1.setListSymbol(new Chunk("*"));
//修改列表符号为图片
//list1.setListSymbol(new Chunk(Image.getInstance("haha.png"),0,0));
//end
try {
//为该Document创建一个Writer实例
PdfWriter.getInstance(document, new FileOutputStream("setList.pdf"));
document.open();
document.add(list);
document.add(list1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}finally{
document.close();
}
}
}
注释:
package com.java.pdf.third;
import java.io.FileOutputStream;
import java.net.URL;
import com.itextpdf.text.Annotation;
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfWriter;
/**
* 创建日期:2017-10-9上午11:09:26
* 修改日期:
* 作者:ttan
* 描述:注释
*/
public class Pdf_setAnnotation {
public static void main(String[] args) {
Document document = new Document();
try {
//注释
Annotation an = new Annotation("anthors","Hello guys!");
//外部链接注释
Annotation an1 = new Annotation(100f,700f,200f,800f,new URL("https://www.baidu.com"));
PdfWriter.getInstance(document, new FileOutputStream("setAnnotation.pdf"));
document.open();
document.add(an);
document.add(an1);
} catch (Exception e) {
e.printStackTrace();
}finally{
document.close();
}
}
}
总结:锚点、列表和注释在适当的地方使用,使得PDF内容性更加丰富,可读性增强。