码迷,mamicode.com
首页 > 其他好文 > 详细

ITEXT操作PDF

时间:2015-01-26 23:02:42      阅读:500      评论:0      收藏:0      [点我收藏+]

标签:

ITEXT操作PDF,非常简单:

(本方法使用itext1.0.4版本,高版本的itext5.5.0同样兼容,改变一下导入包路径就好了)

1,HELLOWORLD项目

package demo;

import java.io.FileOutputStream;    
import java.io.IOException;    

import com.lowagie.text.Document;    
import com.lowagie.text.DocumentException;    
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;    
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfWriter;    

public class HelloWorld {    
        /**    
         * 生成一个简单的PDF文件:HelloWorld.pdf    
         *    
         * 作者:小段    
         */    
        public static void main(String[] args) {    

                System.out.println("Hello World");    
                //第一步:创建一个document对象。    
                Document document = new Document();    
                try {    
                //使用本地字库宋体simsun
                	BaseFont bfChinese = BaseFont.createFont("c://windows//fonts//simsun.ttc,1",
                            BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
                	Font fontChinese = new Font(bfChinese, 12, Font.NORMAL);
                //使用itext提供的字体,额外需要下载itextasion.jar,此方法因为itextasion有几个版本,所以很难成功
//                	BaseFont bfChinese = BaseFont.createFont("STSong-Light",
//                		    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
//                		  com.lowagie.text.Font fontChinese = new com.lowagie.text.Font(bfChinese, 12,
//                		    com.lowagie.text.Font.NORMAL);
//                        // 第二步:    
                        // 创建一个PdfWriter实例,    
                        // 将文件输出流指向一个文件。    
                        PdfWriter.getInstance(document,new FileOutputStream("C:\\HelloWorld.pdf"));    

                        // 第三步:打开文档。    
                        document.open();    
                        // 第四步:在文档中增加一个段落。    
                        document.add(new Paragraph("中文",fontChinese));    
                } catch (DocumentException de) {    
                        System.err.println(de.getMessage());    
                } catch (IOException ioe) {    
                        System.err.println(ioe.getMessage());    
                }    
                // 第五步:关闭文档。    
                document.close();    
                // 检验程序是否正常运行到这里。    
                System.out.println("快去看看吧");    
        }    
}

创建很简单,难点在于显示中文,最好的方法就是使用本地字库,因为大部分电脑都有宋体;

2,创建表格:

package demo;

import java.awt.Color;
import java.io.FileOutputStream;    
import java.io.IOException;    

import com.lowagie.text.Document;    
import com.lowagie.text.DocumentException;    
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;    
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;  

public class Table {

	 
	 public static void main(String[] args) {

	  System.out.println("My First PdfPTable");

	  // 步骤 1: 创建一个document对象
	  Document document = new Document();

	  try {
		//使用本地中文字体,simsun.ttc是本地的宋体
      	BaseFont bfChinese = BaseFont.createFont("c://windows//fonts//simsun.ttc,1",
                BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    	Font fontChinese = new Font(bfChinese, 12, Font.NORMAL);
	   // 步骤 2:
	   // 我们为document创建一个监听,并把PDF流写到文件中
	   PdfWriter.getInstance(document, new FileOutputStream("c:\\MyFirstTable.pdf"));

	   // 步骤 3:打开文档
	   document.open();
	   //创建一个有3列的表格
	   PdfPTable table = new PdfPTable(3);
	   //定义一个表格单元
	   PdfPCell cell = new PdfPCell(new Paragraph("显示中文标题,成功",fontChinese));
	   //定义一个表格单元的跨度
	   cell.setColspan(3);
	   //把单元加到表格中
	   table.addCell(cell);
	   //把下面这9项顺次的加入到表格中,当一行充满时候自动折行到下一行
	   table.addCell("1.1");
	   table.addCell("2.1");
	   table.addCell("3.1");
	   table.addCell("1.2");
	   table.addCell("2.2");
	   table.addCell("3.2");
	   table.addCell("1.3");
	   table.addCell("2.3");
	   table.addCell("3.3");
	   //重新定义单元格
	   cell = new PdfPCell(new Paragraph("cell test1"));
	   //定义单元格的框颜色
	   cell.setBorderColor(new Color(255, 0, 0));
	   //把单元格加到表格上,默认为一个单元
	   table.addCell(cell);
	   //重新定义单元格
	   cell = new PdfPCell(new Paragraph("cell test2"));
	   //定义单元格的跨度
	   cell.setColspan(2);
	   //定义单元格的背景颜色
	   cell.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0));
	   //增加到表格上
	   table.addCell(cell);
	   //增加到文档中
	   document.add(table);
	  } catch (DocumentException de) {
	   System.err.println(de.getMessage());
	  } catch (IOException ioe) {
	   System.err.println(ioe.getMessage());
	  }

	  // 步骤 5:关闭文档
	  document.close();
	 }
	}


ITEXT操作PDF

标签:

原文地址:http://my.oschina.net/acitiviti/blog/371983

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!