需要的兩個包及下載地址:
(1)iText.jar:http://download.csdn.net/source/296416
(2)iTextAsian.jar(用來進行中文的轉換):http://download.csdn.net/source/172399
代碼如下:
1 import java.awt.Color; 2 import java.io.FileOutputStream; 3 import com.lowagie.text.Cell; 4 import com.lowagie.text.Chapter; 5 import com.lowagie.text.Document; 6 import com.lowagie.text.Font; 7 import com.lowagie.text.Image; 8 import com.lowagie.text.List; 9 import com.lowagie.text.ListItem; 10 import com.lowagie.text.PageSize; 11 import com.lowagie.text.Paragraph; 12 import com.lowagie.text.Section; 13 import com.lowagie.text.Table; 14 import com.lowagie.text.pdf.BaseFont; 15 import com.lowagie.text.pdf.PdfWriter; 16 public class ITextDemo { 17 public boolean iTextTest() { 18 try { 19 /** 實例化文檔對象 */ 20 Document document = new Document(PageSize.A4, 50, 50, 50, 50); 21 /** 創建 PdfWriter 對象 */ 22 PdfWriter.getInstance(document,// 文檔對象的引用 23 new FileOutputStream("d://ITextTest.pdf"));//文件的輸出路徑+文件的實際名稱 24 document.open();// 打開文檔 25 /** pdf文檔中中文字體的設置,注意一定要添加iTextAsian.jar包 */ 26 BaseFont bfChinese = BaseFont.createFont("STSong-Light", 27 "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); 28 Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);//加入document: 29 /** 向文檔中添加內容,創建段落對象 */ 30 document.add(new Paragraph("First page of the document."));// Paragraph添加文本 31 document.add(new Paragraph("我們是害蟲", FontChinese)); 32 /** 創建章節對象 */ 33 Paragraph title1 = new Paragraph("第一章", FontChinese); 34 Chapter chapter1 = new Chapter(title1, 1); 35 chapter1.setNumberDepth(0); 36 /** 創建章節中的小節 */ 37 Paragraph title11 = new Paragraph("表格的添加", FontChinese); 38 Section section1 = chapter1.addSection(title11); 39 /** 創建段落並添加到小節中 */ 40 Paragraph someSectionText = new Paragraph("下面展示的為3 X 2 表格.", 41 FontChinese); 42 section1.add(someSectionText); 43 /** 創建表格對象(包含行列矩陣的表格) */ 44 Table t = new Table(3, 2);// 2行3列 45 t.setBorderColor(new Color(220, 255, 100)); 46 t.setPadding(5); 47 t.setSpacing(5); 48 t.setBorderWidth(1); 49 Cell c1 = new Cell(new Paragraph("第一格", FontChinese)); 50 t.addCell(c1); 51 c1 = new Cell("Header2"); 52 t.addCell(c1); 53 c1 = new Cell("Header3"); 54 t.addCell(c1); 55 // 第二行開始不需要new Cell() 56 t.addCell("1.1"); 57 t.addCell("1.2"); 58 t.addCell("1.3"); 59 section1.add(t); 60 /** 創建章節中的小節 */ 61 Paragraph title13 = new Paragraph("列表的添加", FontChinese); 62 Section section3 = chapter1.addSection(title13); 63 /** 創建段落並添加到小節中 */ 64 Paragraph someSectionText3 = new Paragraph("下面展示的為列表.", FontChinese); 65 section3.add(someSectionText3); 66 /** 創建列表並添加到pdf文檔中 */ 67 List l = new List(true, true, 10);// 第一個參數為true,則創建一個要自行編號的列表, 68 // 如果為false則不進行自行編號 69 l.add(new ListItem("First item of list")); 70 l.add(new ListItem("第二個列表", FontChinese)); 71 section3.add(l); 72 document.add(chapter1); 73 /** 創建章節對象 */ 74 Paragraph title2 = new Paragraph("第二章", FontChinese); 75 Chapter chapter2 = new Chapter(title2, 1); 76 chapter2.setNumberDepth(0); 77 /** 創建章節中的小節 */ 78 Paragraph title12 = new Paragraph("png圖片添加", FontChinese); 79 Section section2 = chapter2.addSection(title12); 80 /** 添加圖片 */ 81 section2.add(new Paragraph("圖片添加: 餅圖", FontChinese)); 82 Image png = Image.getInstance("D:/pie.png");//圖片的地址 83 section2.add(png); 84 document.add(chapter2); 85 document.close(); 86 return true; 87 } catch (Exception e2) { 88 System.out.println(e2.getMessage()); 89 } 90 return false; 91 } 92 public static void main(String args[]) { 93 System.out.println(new ITextDemo().iTextTest()); 94 } 95 }
如果發現中文無法顯示的時候,可以在你需要顯示中文的地方先new Paragraph("",FontChinese);
FontChinese:為中文字體的設置,見代碼中。