• 1. iText主题分享Author:贾旺杰Shared by:Birkhoff_JiaWJ
  • 2. What is iText ?iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。Shared by:Birkhoff_JiaWJ
  • 3. When to use iText?通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 支持文本,表格,图形的操作,可以方便的跟Servlet进行结合、著名的Spring也采用iText作为生成PDF的解决方案。 通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解决了B/S系统的报表处理问题。Shared by:Birkhoff_JiaWJ
  • 4. 功能预览:创建读取更新手 动自 动转 换加 密查 看打 印 萃 取印 花填 充切分/合并转 换签 名加 密iText支持的功能 iText部分支持的功能Shared by:Birkhoff_JiaWJ
  • 5. 1iText简介构建iText环境iText常用基础类介绍contentsiText沙场练兵234Shared by:Birkhoff_JiaWJ
  • 6. iText iText官网:http://www.lowagie.com/iText/下载iText jar包MyEclipse 构建路径,导入jar包点击添加文本 环境搭建Csdn下载: http://cdnetworks-kr-2.dl.sourceforge.net/project/itext/iText/iText5.1.0/itext-5.1.0.zipShared by:Birkhoff_JiaWJ
  • 7. 常用基础类介绍:Shared by:Birkhoff_JiaWJ
  • 8. 点击添加标题 五步创建一个PDF文档:Hello World!新建Document创建书写器打开文档书写文档关闭文档document.close();document.add(new Paragraph("helloworld!"));document.open();PdfWriter.getInstance(document, newFileOutputStream("D:\\helloworld.pdf"));Document document = new Document();Shared by:Birkhoff_JiaWJ
  • 9. 1.定义一个A4大小的矩形组件 Rectangle rect=newRectangle( PageSize.A4);2.设置背景色 rect.setBackgroundColor(BaseColor.LIGHT_GRAY);3 设置border类型为box(四周都有) rect.setBorder(Rectangle.BOX);5. 设置border宽度rect.setBorderWidth(5);4.设置border颜色为深灰色 rect.setBorderColor(BaseColor.DARK_GRAY);给它点颜色?5+5涂鸦泼墨…+5?:Document document=new Document(rect,10,10,10,10);Shared by:Birkhoff_JiaWJ
  • 10. 设置阅读器参数PdfWriter pdf=PdfWriter.getInstance(document,new FileOutputStream("D:\\helloworld.pdf")); /** *PdfWriter.PageModeUseThumbs:显示缩略图 *PdfWriter.PageLayoutTwoColumnLeft:双列显示,奇数页在左 *PdfWriter.HideMenubar:隐藏阅读程序的菜单 */ pdf.setViewerPreferences(PdfWriter.PageModeUseThumbs|PdfWriter .PageLayoutTwoColumnLeft|PdfWriter.HideMenubar);Shared by:Birkhoff_JiaWJ
  • 11. 点击添加文本 点击添加文本 点击添加文本 点击添加文本 设置阅读器参数的一些静态变量含义Shared by:Birkhoff_JiaWJ
  • 12. 给文档设置密码和权限PdfWriter pdf=PdfWriter.getInstance(document,new FileOutputStream("D:\\helloworld.pdf")); /** *第一个参数是设置userPassword为123 *第二个参数是设置ownerPassword为1234 *第三个参数设置user的权限可以复制、可以打印 *第四个参数设置加密类型 */ pdf.setEncryption(newbyte[]{'1','2','3'},new byte[]{'1','2','3','4'},PdfWriter.ALLOW_COPY|PdfWriter.ALLOW_PRINTING, PdfWriter.STANDARD_ENCRYPTION_40);注意若需要加密则必须导入bcprov-jdk16-1.44.jar 这个包下载地址为: http://mirrors.ibiblio.org/pub/mirrors/maven2/org/bouncycastle/bcprov-jdk16/1.44/bcprov-jdk16-1.44.jarShared by:Birkhoff_JiaWJ
  • 13. 想取消拷贝或者保存PDF文件的许可?Shared by:Birkhoff_JiaWJ
  • 14. 解决中文乱码问题A注意:由于itext默认是不支持亚洲文字的,如果要想使用中文,则必须在应用中应用亚洲语言包(itext-asian.jar) 下载:http://prdownloads.sourceforge.net/itextpdf/iTextAsian.jar1a:调用系统字体,无需导包? base=BaseFont.createFont("c:\\WINDOWS\\Fonts\\simkai.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); 1b:导入包,调用包中字体 创建一个简体中文的基本字体、UniGB-UCS2-H为简体中文 base=BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.EMBEDDED); 2:fontChinese=newFont(base,12,Font.NORMAL); 3:document.add(newParagraph("大家好!",fontChinese));三步实现:Shared by:Birkhoff_JiaWJ
  • 15. 解决中文乱码问题之异常解析B这是由于我们没有加入亚洲语言包的问题引起的,不过如果我们用itext5.0+以上版本也会出现这个异常,这是由于itext5.0+以上版本在获取资源文件的时候包路径发生了变化,由原来的“com/ lowagie/text/pdf/fonts/”变成了”com/itextpdf/text/pdf/fonts/”而老版的 itext-asian.jar路径是”com/lowagie/text/pdf/fonts/”(我没有找到最新版本的语言包、可能最新的语言包已经修复了这个问题) 更改iTextAsian.jar包名的方法如下: 1)将iTextAsian.jar解压,目录结构如下:com/lowagie/text/pdf/fonts/ 2)将加压后com目录下的包名lowagie更改为itextpdf 3) 3)在命令行转至iTextAsian目录,重新打包为iTextAsian.jar文件 命令如下:jar cvf iTextAsian.jar com/itextpdf/text/pdf/fonts/* 执行后,将新的iTextAsian.jar加入到classpath路径Shared by:Birkhoff_JiaWJ
  • 16. 感谢你的聆听!The end2012年8月20日Shared by:Birkhoff_JiaWJ