利用iText编写并生成PDF文件,可以写入段落、章节、定位符(链接)、列表、图片。
iText的UML图如下:
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import com.itextpdf.text.Anchor;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chapter;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.Image;
import com.itextpdf.text.List;
import com.itextpdf.text.ListItem;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.Section;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.CMYKColor;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
public class ITextTest {
public static void main(String[] args) throws DocumentException,
MalformedURLException, IOException {
//Step 1: 实例化文档对象,设置文档背景,大小等
Rectangle rectPageSize = new Rectangle(PageSize.A4);// A4纸张
rectPageSize.setBackgroundColor(BaseColor.BLUE);//文档的背景色
//创建一个文档对象,设置初始化大小和页边距
Document document = new Document(rectPageSize, 40, 40, 40, 40);// 上、下、左、右间距
//Document document = new Document(PageSize.A4, 50, 50, 50, 50);
//Step 2: 创建 PdfWriter 对象:第一个参数是文档对象的引用,第二个参数是输出将写入的文件的绝对名称
PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("./ITextTest.pdf"));
//Step 3: 打开文档对象
document.open();
//Step 4: 向文档中添加内容
//iText中用文本块(Chunk)、短语(Phrase)和段落(paragraph)处理文本。
//1. 创建文本块对象
//文本块(Chunk)是处理文本的最小单位,有一串带格式(包括字体、颜色、大小)的字符串组成。
Chunk chunk1 = new Chunk("This text is underlined", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE));
document.add(chunk1);
//2. 创建短语对象
//短语(Phrase)由一个或多个文本块(Chunk)组成,短语(Phrase)也可以设定字体,但对于其中已设定过字体的文本块(Chunk)无效。
//通过短语(Phrase)成员函数add可以将一个文本块(Chunk)加到短语(Phrase)中,如:phrase.add(chunk);
Phrase phrase1 = new Phrase("The first Phrase");
document