java使用iText生成pdf表格
首先需要你自己下載itext相關的jar包并添加引用,或者在maven中添加如下引用配置:
<dependency> <groupId>com.lowagie</groupId> <artifactId>iText</artifactId> <version>2.1.5</version> </dependency> <!--itext生成word文檔,需要下面dependency--> <dependency> <groupId>com.lowagie</groupId> <artifactId>iText-rtf</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>com.lowagie</groupId> <artifactId>iTextAsian</artifactId> <version>2.1.4</version> </dependency>
如下代碼:
package com.iText.create; import java.awt.Color; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import com.lowagie.text.Cell; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Element; import com.lowagie.text.Font; import com.lowagie.text.HeaderFooter; import com.lowagie.text.Image; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.Phrase; import com.lowagie.text.Table; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfWriter; /** *//** * 功能描述:使用Itext組件創建pdf文檔<br> * 創建時間:2010-07-01 * @author sxyx2008 * */ public class CreatePdf { public CreatePdf() throws Exception{ //創建一個文檔對象紙張大小為A4 Document doc=new Document(PageSize.A4,50,50,50,50); //設置要輸出到磁盤上的文件名稱 PdfWriter writer=PdfWriter.getInstance(doc,new FileOutputStream(new File("徐熙媛.pdf"))); //設置作者信息 doc.addAuthor("sxyx2008"); //設置文檔創建日期 doc.addCreationDate(); //設置標題 doc.addTitle("iText測試"); //設置值主題 doc.addSubject("iText"); //構建頁腳 HeaderFooter footer=new HeaderFooter(new Phrase(), true); //設置頁腳是否有邊框 //0表示無 //1上邊框 //2下邊框 //3上下邊框都有 默認都有 //設置頁腳是否有邊框 footer.setBorder(0); //footer.setBorder(1); //footer.setBorder(2); //footer.setBorder(3); //設置頁腳的對齊方式 footer.setAlignment(Element.ALIGN_CENTER); //將頁腳添加到文檔中 doc.setFooter(footer); //打開文檔開始寫內容 doc.open(); //Paragraph par1=new Paragraph("Hello,Welcome You"); //Paragraph par2=new Paragraph("你好,中文測試",ChineseFont()); /**//*par1.setAlignment(Element.ALIGN_CENTER); doc.add(par1);*/ //par2.setAlignment(Element.ALIGN_CENTER); //doc.add(par2); //構建一段落 Paragraph par3=new Paragraph("客戶信息表",ChineseFont()); //設置局中對齊 par3.setAlignment(Element.ALIGN_CENTER); //添加到文檔 doc.add(par3); //創建一個四列的表格 Table table=new Table(4); //設置邊框 table.setBorder(1); //創建表頭 Cell cell1=new Cell(new Phrase("編號",ChineseFont())); cell1.setHorizontalAlignment(Element.ALIGN_CENTER); cell1.setVerticalAlignment(Element.ALIGN_CENTER); cell1.setHeader(true); cell1.setBackgroundColor(Color.RED); Cell cell2=new Cell(new Phrase("姓名",ChineseFont())); cell2.setHorizontalAlignment(Element.ALIGN_CENTER); cell2.setVerticalAlignment(Element.ALIGN_CENTER); cell2.setHeader(true); cell2.setBackgroundColor(Color.RED); Cell cell3=new Cell(new Phrase("性別",ChineseFont())); cell3.setHorizontalAlignment(Element.ALIGN_CENTER); cell3.setVerticalAlignment(Element.ALIGN_CENTER); cell3.setHeader(true); cell3.setBackgroundColor(Color.RED); Cell cell4=new Cell(new Phrase("備注",ChineseFont())); cell4.setHorizontalAlignment(Element.ALIGN_CENTER); cell4.setVerticalAlignment(Element.ALIGN_CENTER); cell4.setHeader(true); cell4.setBackgroundColor(Color.RED); table.addCell(cell1); table.addCell(cell2); table.addCell(cell3); table.addCell(cell4); //添加此代碼后每頁都會顯示表頭 table.endHeaders(); //循環向表格中添加100條記錄 100行4列的表格 //以下代碼的作用是創建100行數據,其中每行有四列,列依次為 編號 姓名 性別 備注 for (int i = 1; i <=100; i++) { //設置編號單元格 Cell cell11=new Cell(i+""); //設置姓名單元格 Cell cell22=new Cell(new Phrase("徐熙媛",ChineseFont())); //設置性別單元格 Cell cell33=new Cell(new Phrase("女",ChineseFont())); //設置備注單元格 Cell cell44=new Cell(new Phrase("好姑娘",ChineseFont())); //單元格水平對齊方式 cell11.setHorizontalAlignment(Element.ALIGN_CENTER); //單元格垂直對齊方式 cell11.setVerticalAlignment(Element.ALIGN_CENTER); cell22.setHorizontalAlignment(Element.ALIGN_CENTER); cell22.setVerticalAlignment(Element.ALIGN_CENTER); cell33.setHorizontalAlignment(Element.ALIGN_CENTER); cell33.setVerticalAlignment(Element.ALIGN_CENTER); cell44.setHorizontalAlignment(Element.ALIGN_CENTER); cell44.setVerticalAlignment(Element.ALIGN_CENTER); table.addCell(cell11); table.addCell(cell22); table.addCell(cell33); table.addCell(cell44); } //將表格添加到新的文檔 doc.add(table); //創建新的一頁 doc.newPage(); //添加圖片 Image image=Image.getInstance("D://Program Files//myeclipseworkspace//6.5//iText//src//5.jpg"); //添加到文檔 doc.add(image); //設置對象方式 image.setAlignment(Element.ALIGN_CENTER); doc.close(); writer.close(); } //pdf文檔中文字符處理 public static Font ChineseFont() { BaseFont baseFont=null; try { baseFont=BaseFont.createFont("STSong-Light","UniGB-UCS2-H", true); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Font chineseFont=new Font(baseFont,8,Font.NORMAL,Color.BLUE); return chineseFont; } public static void main(String[] args) { try { new CreatePdf(); } catch (Exception e) { e.printStackTrace(); } } }
本文由用戶 c6g3 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!