`
freesea
  • 浏览: 129094 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

阅读更多
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(00);   
  44.   
  45. document.add(img);   
  46.   

 

五、参考文档:

评论
2 楼 haiyangyiba 2012-05-31  
谢谢博主无私奉献
1 楼 shenger 2008-11-21  
对我帮助很大,谢谢!

相关推荐

    使用IText生成PDF和WORD文档

    document.add(new Paragraph("这是使用IText生成的PDF文档!")); document.close(); } catch (DocumentException | IOException e) { e.printStackTrace(); } } } ``` 这段代码首先创建了一个`Document`对象...

    itextpdf 导出pdf 表格 自动分页中文 目录

    3. **PDF表格自动分页**: 在生成PDF文档时,如果一个表格太长以至于无法在一页内完全显示,iTextPDF可以自动将其分页。通过调整表格属性,如行高、列宽,以及设置分页策略,可以确保表格在每一页上都保持完整的结构...

    itext生成PDF开发文档

    iText 是一个强大的 Java 库,用于生成和编辑 PDF 文档。在 Java 开发中,iText 提供了丰富的 API,使得开发者可以方便地在代码中创建 PDF 文件、添加文本、图像、表格、链接等元素,甚至进行数字签名和表单处理。在...

    itext 生成pdf 目录

    在使用iText生成PDF目录时,要注意几点: - 确保每个书签都有一个对应的目标位置,否则在PDF中点击书签可能无法正确跳转。 - 避免内存泄漏,尤其是在处理大量书签时,要及时释放资源。 - 书签层次不宜过深,以免影响...

    itext生成pdf文件-表格

    iText是一个流行的Java库,专门用于创建和编辑PDF文档。本文将深入探讨iText如何生成包含表格的PDF文件,同时结合提供的“itext教程_itext的使用方法_iava使用itext实现pdh的输出.doc”文档,为您详细解析这一过程。...

    java使用itext实现pdf文件下载

    这是使用Itext生成的PDF文档。")); document.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 上述代码会在当前目录下生成一个名为"output.pdf"的PDF文件,内容为"Hello, World! 这是使用...

    Java IText生成PDF

    在本篇文章中,我们将深入探讨如何使用IText在Java环境中生成PDF文档。 首先,你需要在项目中引入IText库。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.itextpdf</groupId> ...

    Java 使用iText生成word文档,有表格,图片,文本有颜色

    在Java开发中,有时我们需要将数据导出为Word文档,以方便阅读和打印。...通过学习和理解这些代码,你可以快速掌握在Java中使用iText生成Word文档的技巧。记得根据你的项目需求进行适当的修改和优化。

    Java iText 生成pdf文档

    Java iText 生成pdf文档源代码(包括插入文本、表格、图像)

    java使用IText导出PDF(包含图片、表格、文字等等Demo和依赖包)

    总结来说,IText是Java中一个强大且灵活的PDF生成库,通过它可以轻松地创建包含文字、图片和表格的PDF文档。通过理解并实践提供的Demo,你将能够熟练地运用IText进行PDF的生成工作。记住,持续学习和更新库的版本以...

    Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)

    生成PDF文档的基本步骤如下: 1. 创建PdfDocument对象,它是PDF文档的基础,通过`new PdfDocument(new PdfWriter(outputStream))`初始化,其中`outputStream`是你准备写入PDF数据的流。 2. 创建Document对象,它是...

    iText中文帮助文档_itext中文帮助文档_itext_iTextpdf_itext中文文档_

    这个中文帮助文档不仅涵盖了以上所有方面,还可能包含更深入的示例代码和使用技巧,是学习和使用iText生成PDF的宝贵资源。通过阅读和实践,开发者能够熟练掌握创建专业PDF文档的技能,满足各种业务需求。

    itextpdf中文帮助文档.pdf

    iTextPDF是一款广泛使用的开源Java库,用于创建、修改PDF文档。这个中文帮助文档提供了关于如何使用iTextPDF库在Java项目中处理PDF的详细指南,适合对PDF操作有一定需求的开发者。iTextPDF不仅支持创建新的PDF文档,...

    Itext利用模板生成PDF实例demo,导入即可使用,供前台下载,打印,预览等

    Itext是一款强大的Java库,用于创建、修改和处理PDF文档。这个库在IT行业中广泛应用于生成动态报告、发票、证书等文档,因为它的灵活性和易用性。在这个实例中,我们看到Itext被用来通过模板生成PDF文件,这种做法...

    java使用itext导出PDF文本绝对定位(实现方法)

    java使用iText导出PDF文本绝对定位(实现方法) iText是一个流行的Java类库,用于生成PDF文档。下面我们将探讨如何使用iText在Java中导出PDF...我们希望本篇文章能够给您一个参考,帮助您更好地使用iText生成PDF文档。

    java itext生成PDF文件

    Java中的iText库是一个强大的工具,用于创建、编辑和处理PDF文档。在本文中,我们将深入探讨如何使用iText库生成PDF文件,并特别关注在创建表格时进行单元格合并的方法。 首先,`itextpdf-5.5.10.jar`是iText库的...

    使用iText生成PDF.doc

    iText 是一个强大的 Java 类库,专为生成和编辑PDF文档而设计。它以其灵活性和易用性在开发社区中广受欢迎。通过iText,开发者可以轻松创建包含文本、图像、表格等各种元素的PDF文件。以下是一些关于如何使用iText...

    Itext输出复杂PDF表格样式参数外部配置化

    在IT行业中,生成PDF文档是常见的需求,尤其是在报表、发票或复杂的文档格式化场景中。Itext是一个流行的Java库,用于创建和修改PDF文档。本文将深入探讨如何使用Itext来输出复杂的PDF表格,并实现样式参数的外部...

    解决Itext生成PDF中文不换行的jar

    为了解决"Java使用Itext生成PDF中文不换行"的问题,我们可以采取以下几种策略: 1. **设置字体和编码**:确保使用支持中文的字体,如SimSun、Arial Unicode MS等,并正确设置PDF的编码为UTF-8。Itext中的`Font`类...

    java通过itext操作pdf模板写入pdf合同数据

    iText是开源的Java库,支持PDF 1.7标准,提供了一系列API用于创建、编辑和阅读PDF文档。它可以用于添加文本、图像、表格、签名、水印等功能。iText库不仅适用于Java,还有.NET版本供C#和.NET开发者使用。 2. **PDF...

Global site tag (gtag.js) - Google Analytics