Java產生PDF文檔(表格、列表、添加圖片等)

來源:互聯網
上載者:User

標籤:set   jar   instance   rgs   csdn   mbed   col   als   net   

需要的兩個包及:

(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:為中文字型的設定,見代碼中。

Java產生PDF文檔(表格、列表、添加圖片等)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.