Java操作pdf文件

来源:互联网 发布:昆山软件行业协会 编辑:程序博客网 时间:2024/05/19 22:58

在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText。通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样就很好的解决了B/S系统的报表处理问题。具体实现方法如下:

1.导入itext-2.1.5.jar跟itextasian-1.5.2.jar两个包到项目里;

2.建立一个pdf文件:

import java.io.FileNotFoundException;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.HeaderFooter;import com.lowagie.text.Paragraph;import com.lowagie.text.Phrase;import com.lowagie.text.pdf.BaseFont;import com.lowagie.text.pdf.PdfWriter;public class Demo1 {public static void main(String args[]){//1.建立pdf对象Document doc =new Document();//指定文件保存路径String filePath="C:/Users/ws/Desktop/wws.pdf";try {//2.建立一个书写器与doc文档对象进行关联,通过书写器将文档写入到磁盘PdfWriter.getInstance(doc, new FileOutputStream(filePath));//3.设定文档相关属性doc.addTitle("王文生讲java操作pdf");doc.addAuthor("wws");//4.添加页面页脚HeaderFooter header=new HeaderFooter(new Phrase("This is Header!"),false);HeaderFooter footer=new HeaderFooter(new Phrase("This is Footer!"),false);doc.setHeader(header);doc.setFooter(footer);//5.创建字体BaseFont bfChinese=null;Font fontChinese=null;//BaseFont.NOT_EMBEDDED:非嵌入字体try {bfChinese=BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}//14号,不加粗fontChinese= new Font(bfChinese,14,Font.NORMAL);//6.打开文档doc.open();doc.add(new Paragraph("E-wei工作室的各位师弟师妹要注意认真学习!",fontChinese));//7.关闭文档doc.close();} catch (FileNotFoundException | DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

3.效果:


一般情况下,iText使用在有以下一个要求的项目中:
1)内容无法提前利用:取决于用户的输入或实时的数据库信息。
2)由于内容,页面过多,PDF文档不能手动生成。
3)文档需在无人参与,批处理模式下自动创建。
4)内容被定制或个性化;例如,终端客户的名字需要标记在大量的页面上。

0 0