`

Itext笔记4

阅读更多

 

不好意思我觉得文章写得不错怕丢了所以转贴

Java iText 动态 生成 PDF 文档表格中文问题

关键字: java导入导出
iText是一个开发源代码的项目,你可以使用iText方便的实现PDF的输出。
 
 
一、iText的下载:

    你可以在 http://www.lowagie.com/iText/  查看关于iText的相关信息,包括源代码,文档..

    1. itext-src-1.4.zip(源代码)
        
http://jaist.dl.sourceforge.net/sourceforge/itext/itext-src-1.4.zip

    2. itext-1.4.jar(可以直接导入的jar文件)

        http://jaist.dl.sourceforge.net/sourceforge/itext/itext-1.4.jar

    3. 亚洲语言包

         http://itextdocs.lowagie.com/downloads/iTextAsian.jar           (或者)

        http://itextdocs.lowagie.com/downloads/iTextAsianCmaps.jar

       http://prdownloads.sourceforge.net/itext/iTextAsian.jar

二、示例程序:

        首先把上面的这几个jar包的完整路径添加到环境变量 classpath 中,然后再下面的程序
        中导入相应的包

java 代码
  1. /**  
  2.   * HelloWorld.java  
  3.  */   
  4.   
  5. import  java.io.FileOutputStream;   
  6. import  java.io.IOException;   
  7.   
  8. import  com.lowagie.text.*;   
  9. import  com.lowagie.text.pdf.PdfWriter;   
  10.   
  11. public   class  HelloWorld {   
  12.   
  13.    public   static   void  main(String[] args) {   
  14.   
  15.     System.out.println( "Hello World" );   
  16.   
  17.      // 创建一个Document对象   
  18.     Document document =  new  Document();   
  19.   
  20.      try   
  21.     {   
  22.   
  23.        // 生成名为 HelloWorld.pdf 的文档   
  24.       PdfWriter.getInstance(document,  new  FileOutputStream( "HelloWorld.pdf" ));   
  25.   
  26.        // 添加PDF文档的一些信息   
  27.       document.addTitle( "Hello World example" );   
  28.       document.addAuthor( "Bruno Lowagie" );   
  29.       document.addSubject( "This example explains how to add metadata." );   
  30.       document.addKeywords( "iText, Hello World, step 3, metadata" );   
  31.       document.addCreator( "My program using iText" );   
  32.   
  33.        // 打开文档,将要写入内容   
  34.       document.open();   
  35.   
  36.        // 插入一个段落   
  37.       document.add( new  Paragraph( "Hello World!" ));   
  38.   
  39.     }    
  40.      catch  (DocumentException de)   
  41.     {   
  42.       System.err.println(de.getMessage());   
  43.     }   
  44.      catch  (IOException ioe)   
  45.     {   
  46.       System.err.println(ioe.getMessage());   
  47.     }   
  48.   
  49.      // 关闭打开的文档   
  50.     document.close();   
  51.   }   
  52. }    
  53.   

 

编译运行以后,我们可以在运行的目录发现生成的HelloWorld.pdf,打开可以看到我们写的文字:

Hello World



三、中文问题:

        由于iText不支持东亚语言,我们下载了 iTextAsian.jar 以后,就可以在PDF里面写中文:

java 代码
  1. /**  
  2.   * AsianTest.java  
  3.  */   
  4.   
  5. import  java.io.FileOutputStream;   
  6. import  java.io.IOException;   
  7.   
  8. import  com.lowagie.text.*;   
  9. import  com.lowagie.text.pdf.PdfWriter;   
  10. import  com.lowagie.text.pdf.BaseFont;   
  11. import  com.lowagie.text.Font;   
  12. import  java.awt.Color;   
  13.   
  14. public   class  AsianTest{   
  15.   
  16.    public   static   void  main(String[] args) {   
  17.   
  18.      // 创建一个Document对象   
  19.     Document document =  new  Document();   
  20.   
  21.      try   
  22.     {   
  23.   
  24.        // 生成名为 AsianTest.pdf 的文档   
  25.       PdfWriter.getInstance(document,  new  FileOutputStream( "AsianTest.pdf" ));   
  26.   
  27.       /**  新建一个字体,iText的方法  
  28.        *  STSongStd-Light 是字体,在iTextAsian.jar 中以property为后缀  
  29.        *  UniGB-UCS2-H   是编码,在iTextAsian.jar 中以cmap为后缀  
  30.        *  H 代表文字版式是 横版, 相应的 V 代表竖版  
  31.       */   
  32.       BaseFont bfChinese = BaseFont.createFont( "STSongStd-Light" "UniGB-UCS2-H" false );   
  33.   
  34.         Font fontChinese =  new  Font(bfChinese,  12 , Font.NORMAL, Color.GREEN);   
  35.   
  36.        // 打开文档,将要写入内容   
  37.       document.open();   
  38.   
  39.        // 插入一个段落   
  40.       Paragraph par =  new  Paragraph( "我们" ,fontChinese);   
  41.   
  42.       document.add(par);   
  43.   
  44.     }    
  45.      catch  (DocumentException de)   
  46.     {   
  47.       System.err.println(de.getMessage());   
  48.     }   
  49.      catch  (IOException ioe)   
  50.     {   
  51.       System.err.println(ioe.getMessage());   
  52.     }   
  53.   
  54.      // 关闭打开的文档   
  55.     document.close();   
  56.   }   
  57. }   
  58.   

四、其他问题:(应导入相应的包)

java 代码
  1.   1 . 换页:   
  2.   
  3. document.newPage();   
  4.   
  5.         2 . 表格:   
  6.   
  7. // 设置 Table   
  8. Table aTable =  new  Table( 3 );   
  9. int  width[] = { 25 , 25 , 50 };   
  10. aTable.setWidths(width);   
  11. aTable.setWidth( 80 );  // 占页面宽度 80%   
  12.   
  13. aTable.setDefaultHorizontalAlignment(Element.ALIGN_LEFT);   
  14. aTable.setDefaultVerticalAlignment(Element.ALIGN_MIDDLE);   
  15. aTable.setAutoFillEmptyCells( true );  //自动填满   
  16. aTable.setPadding( 1 );   
  17. aTable.setSpacing( 1 );   
  18. aTable.setDefaultCellBorder( 0 );   
  19. aTable.setBorder( 0 );   
  20.   
  21. Cell cell =  new  Cell( new  Phrase( "这是一个测试的 3*3 Table 数据" , fontChinese ));   
  22. cell.setVerticalAlignment(Element.ALIGN_TOP);   
  23. cell.setRowspan( 3 );   
  24. aTable.addCell(cell);   
  25.   
  26. aTable.addCell( new  Cell( "#1" ));   
  27. aTable.addCell( new  Cell( "#2" ));   
  28. aTable.addCell( new  Cell( "#3" ));   
  29.   
  30. aTable.addCell( new  Cell( "#4" ));   
  31. aTable.addCell( new  Cell( "#5" ));   
  32. aTable.addCell( new  Cell( "#6" ));   
  33.   
  34. document.add(aTable);   
  35.   
  36.         3 . 图片:   
  37.   
  38. // 可以是绝对路径,也可以是URL   
  39. Image img = Image.getInstance( "logo.gif" );   
  40.   
  41. // Image image = Image.getInstance(new URL(http://xxx.com/logo.jpg));   
  42.   
  43. img.setAbsolutePosition( 0 0 );   
  44.   
  45. document.add(img);   
  46.   

 

五、参考文档:

  • http://itext.ugent.be/library/api/                        (api)
  • iText-2.1.3.jar (1 MB)
  • 描述: iText开发包最新下载
  • 下载次数: 148
分享到:
评论

相关推荐

    iText笔记

    这篇笔记主要探讨了如何使用iText创建和操作表格。在给定的代码示例中,我们看到一个简单的Java程序,该程序展示了如何使用iText库创建一个包含多个单元格的PDF表格。 首先,程序创建了一个`Document`对象,这是...

    IText入门开发文档

    4. 查阅"iText中文教程.doc"和"学习itext笔记.docx",获取更多实用技巧和解决问题的方法。 通过以上步骤,你将能够熟练掌握IText的基本用法,并具备创建和编辑PDF文档的能力。在实际工作中,可以根据需求进一步研究...

    itext生成PDF和word的两个demo

    其中还附有学习笔记一份,上述生成的文档包括对字体的选择(本地或者iTextAsian里面的),有对图片的添加,有对样式的调整,有对table的添加,其中生成的文档格式比较正规,是现实用户使用模板。如有需要欢迎大家...

    使用itext方式导出word格式

    案例中的两个`.txt`文件可能是博主在测试过程中记录的笔记或输出结果,它们可以提供更具体的信息,帮助理解实际的实现细节。 总结来说,利用iText库,开发者可以在Java中创建Word文档,这在需要自动化报告生成、...

    Itext5生成PDF报表

    `iText5`是一个强大的Java库,专门用于创建和编辑PDF文档。本篇将深入探讨如何利用`iText5`生成PDF报表,并结合FastDFS文件系统进行文件存储,以及将相关信息存入数据库。 首先,`iText5`是`iText`系列的一个版本,...

    itext in action PDF输出语言报告

    itext in action (java中 pdf 格式输出笔记)

    Java学习笔记

    总之,"Java学习笔记"涵盖了从基础到进阶的众多Java主题,结合JFreeChart和iText这两个实用库,不仅提供了对Java编程语言的深入理解,还展示了其在数据可视化和文档生成方面的强大能力。对于任何希望提升Java技能的...

    APACHE BIRT图表学习笔记

    ### Apache BIRT 图表学习笔记知识点详解 #### 一、Apache BIRT 概述 Apache BIRT(Business Intelligence and Reporting Tools)是一款开源的商务智能工具,由Eclipse基金会发起并维护。它为开发者提供了创建数据...

    dwr3 学习笔记<一>

    2. **itext-2.0.6.jar** - 这是一个用于创建PDF文档的Java库,可能在笔记中涉及了DWR3如何用来实现实时生成或更新PDF文件的功能。 3. **dwr.jar** - DWR的核心库,包含了所有必需的类和资源,用于在浏览器和服务器...

    java生成pdf文件

    4. **iText 7 Signature**: itext7-sign-7.0.1-sources.jar.asc、itext7-sign-7.0.1.pom.asc 和 itext7-sign-7.0.1-javadoc.jar.asc 包含了签名和安全功能。这些库可以用来签署PDF文件,确保其完整性,并提供数字...

    Jasperreport+ireport学习笔记1

    ### Jasperreport与iReport整合开发Web报表学习笔记 #### 一、环境配置 为了能够顺利地使用Jasperreport和iReport进行报表设计与开发,首先需要确保开发环境配置正确。 1. **Java JDK环境**: 确保已安装最新版的...

    NoteTakingApplication:笔记记录应用程序,允许用户添加笔记,生成下载PDF并通过电子邮件发送笔记。 在AWS上实时签出应用程序

    笔记记录应用程序,允许用户添加笔记,生成下载PDF并通过电子邮件发送笔记。 应用程序 : : 使用的技术和库 1,Spring MVC 2,Hibernate + MySql 3,Hibernate验证器 4,JavaMail API 5.iTextPDF库 6.html,css...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    对于PDF和Excel格式的输出,Spring MVC可以通过Apache POI库来处理Excel,使用Flying Saucer或iText库来生成PDF。这些库能够将HTML内容转换为所需的格式,方便导出和下载。 总的来说,Spring MVC是Spring框架的重要...

    CRMSys项目笔记

    项目可能使用Apache POI库读写Excel,iText或PDFBox生成Pdf文件。学习这些技能对于生成报告、导出数据等场景非常实用。 5. **统计报表** “统计报表注意事项.txt”可能涵盖了报表的设计和生成过程。在CRMSys中,...

    JfreeChart 学习笔记

    ### JfreeChart 学习笔记:深度解析与应用 #### JFreeChart概览与核心功能 JFreeChart作为一款开源的JAVA项目,专为图表开发而设计,支持丰富的图表类型,包括饼图、柱状图(含普通及堆栈柱状图)、线图、散点图、...

    JFreeChart学习笔记

    **JFreeChart学习笔记** JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件、Applet或Web应用中创建各种复杂的图表。这个开源项目提供了多种图表类型,如饼图、柱状图、线图、散点图、甘特图等...

    CleanerNotes:基于tomcat的网络应用程序,可将笔记中的照片清除为pdf

    此外,CleanerNotes可能还使用了PDF库,如iText或Apache PDFBox,这些库提供了创建、编辑和操作PDF文档的能力。通过这些库,开发者可以精确控制PDF的布局,将照片和文本合并到一个统一的文档中。在处理过程中,可能...

Global site tag (gtag.js) - Google Analytics