java操作pdf(解决中文导出问题)
你可以在 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
二、示例程序:
首先把上面的这几个jar包的完整路径添加到环境变量 classpath 中,然后再下面的程序
中导入相应的包
- /**
- * HelloWorld.java
- */
- import java.io.FileOutputStream;
- import java.io.IOException;
- import com.lowagie.text.*;
- import com.lowagie.text.pdf.PdfWriter;
- public class HelloWorld {
- public static void main(String[] args) {
- System.out.println("Hello World");
- // 创建一个Document对象
- Document document = new Document();
- try
- {
- // 生成名为 HelloWorld.pdf 的文档
- PdfWriter.getInstance(document, new FileOutputStream("HelloWorld.pdf"));
- // 添加PDF文档的一些信息
- document.addTitle("Hello World example");
- document.addAuthor("Bruno Lowagie");
- document.addSubject("This example explains how to add metadata.");
- document.addKeywords("iText, Hello World, step 3, metadata");
- document.addCreator("My program using iText");
- // 打开文档,将要写入内容
- document.open();
- // 插入一个段落
- document.add(new Paragraph("Hello World!"));
- }
- catch (DocumentException de)
- {
- System.err.println(de.getMessage());
- }
- catch (IOException ioe)
- {
- System.err.println(ioe.getMessage());
- }
- // 关闭打开的文档
- document.close();
- }
- }
编译运行以后,我们可以在运行的目录发现生成的HelloWorld.pdf,打开可以看到我们写的文字:
三、中文问题:
由于iText不支持东亚语言,我们下载了iTextAsian.jar 以后,就可以在PDF里面写中文:
- /**
- * AsianTest.java
- */
- import java.io.FileOutputStream;
- import java.io.IOException;
- import com.lowagie.text.*;
- import com.lowagie.text.pdf.PdfWriter;
- import com.lowagie.text.pdf.BaseFont;
- import com.lowagie.text.Font;
- import java.awt.Color;
- public class AsianTest{
- public static void main(String[] args) {
- // 创建一个Document对象
- Document document = new Document();
- try
- {
- // 生成名为 AsianTest.pdf 的文档
- PdfWriter.getInstance(document, new FileOutputStream("AsianTest.pdf"));
- /** 新建一个字体,iText的方法
- * STSongStd-Light 是字体,在iTextAsian.jar 中以property为后缀
- * UniGB-UCS2-H 是编码,在iTextAsian.jar 中以cmap为后缀
- * H 代表文字版式是 横版, 相应的 V 代表 竖版
- */
- //下面的那两句要有,不然的话,中文就出不来
- BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
- Font fontChinese = new Font(bfChinese, 12, Font.NORMAL, Color.GREEN);
- // 打开文档,将要写入内容
- document.open();
- // 插入一个段落
- Paragraph par = new Paragraph("我们",fontChinese);
- document.add(par);
- }
- catch (DocumentException de)
- {
- System.err.println(de.getMessage());
- }
- catch (IOException ioe)
- {
- System.err.println(ioe.getMessage());
- }
- // 关闭打开的文档
- document.close();
- }
- }
就可以显示中文了。
四、其他问题:(应导入相应的包)
1. 换页:
document.newPage();
2. 表格:
- // 设置 Table
- Table aTable = new Table(3);
- int width[] = {25,25,50};
- aTable.setWidths(width);
- aTable.setWidth(80); // 占页面宽度 80%
- aTable.setDefaultHorizontalAlignment(Element.ALIGN_LEFT);
- aTable.setDefaultVerticalAlignment(Element.ALIGN_MIDDLE);
- aTable.setAutoFillEmptyCells(true); //自动填满
- aTable.setPadding(1);
- aTable.setSpacing(1);
- aTable.setDefaultCellBorder(0);
- aTable.setBorder(0);
- Cell cell = new Cell(new Phrase("这是一个测试的 3*3 Table 数据", fontChinese ));
- cell.setVerticalAlignment(Element.ALIGN_TOP);
- cell.setRowspan(3);
- aTable.addCell(cell);
- aTable.addCell(new Cell("#1"));
- aTable.addCell(new Cell("#2"));
- aTable.addCell(new Cell("#3"));
- aTable.addCell(new Cell("#4"));
- aTable.addCell(new Cell("#5"));
- aTable.addCell(new Cell("#6"));
- document.add(aTable);
3. 图片:
// 可以是绝对路径,也可以是URL
Image img = Image.getInstance("logo.gif");// Image image = Image.getInstance(new URL(http://xxx.com/logo.jpg));
img.setAbsolutePosition(0, 0);
document.add(img);
五、参考文档:
- iText
http://www.lowagie.com/iText/- iText API:
http://itext.sourceforge.net/docs/
http://www.sentom.net/list.asp?id=42转自:
http://dev.csdn.net/author/comstep/f4b87d7c83d34323bdb28025c14c4316.html
相关推荐
我们在项目当中经常要导出pdf文档,pdf文档还要按一定的格式导出,以下介绍导出pdf文档功能: 1)支持A4纸大小导出 2)指定文字显示的位置 3)支持表格展示数据 4)添加水印 5)代码全开源,在多个项目中使用,放心...
下面将详细介绍如何解决Java中Itext PDF中文不显示的问题。 首先,我们需要理解PDF文档的编码机制。PDF文档默认使用的是Adobe的标准字体,如Helvetica或Times Roman,这些字体并不包含中文字符集。因此,当尝试在...
在IT行业中,利用Java从PDF模板中导出数据并设置保护是一项常见的需求,尤其是在文档自动化处理、报表生成或数据安全领域。以下是对这一主题的深入探讨,包括所需的技术栈、步骤详解以及潜在的安全措施。 ### 技术...
Java 生成 PDF 文件,解决中文乱码问题 Java 生成 PDF 文件,解决中文乱码问题是 Java 编程中常见的问题。解决这个问题的关键是正确地设置中文字体,以避免乱码问题。本文将通过一个完整的示例代码,详细讲解如何...
在Java开发中,导出PDF是一项常见的需求,例如生成报告、报表或者合同等。这个话题主要涉及Java处理PDF文档的技术,以及如何利用模板来高效地生成PDF内容。在这个场景下,我们可以使用开源库如iText或Apache PDFBox...
总的来说,Java实现PDF导出并不复杂,只需要掌握合适的库,理解基本的PDF操作概念,就能轻松地生成符合需求的PDF文件。通过不断学习和实践,你可以进一步提升在PDF处理方面的技能,满足各种复杂的业务场景。
java示例代码,导出pdf文件,加签;可以实现导出pdf的图片签名;导出图片,文件,内容.纯后端代码,代码示例 在项目开发中,产品的需求越来越奇葩啦,开始文件下载都是下载为excel的,做着做着需求竟然变了,要求能导出pdf...
本文将详细讲解如何使用Java生成包含中文字符的PDF文档,并解决中文乱码问题,主要涉及的库是iText库及其针对亚洲语言的支持包。 首先,iText是一个开源的Java库,用于创建和修改PDF文档。在这里我们使用的是iText ...
本文将深入探讨如何使用Java实现FusionCharts图表的导出功能,包括导出为图片和PDF文件。 首先,要实现这个功能,你需要在项目中引入FusionCharts的Java库。FusionCharts提供了Java SDK,通过它我们可以与...
在Java开发中,实现PDF导出功能是一项常见的需求,特别是在处理包含中文字符的文档时,确保中文支持至关重要。本文将详细讲解如何在Java环境中利用相关的库和资源来实现在PDF中正确显示中文字符。 首先,PDF...
总之,Adobe PDF编辑器与Java的iTextPDF库结合,为企业提供了灵活且高效的PDF文档处理方案,无论是简单的内容替换还是复杂的文档生成,都能满足需求。在实际项目中,应根据业务场景选择合适的方法,优化代码以提高...
Java编程语言在处理文档转换方面提供了强大的支持,...综上所述,"java导出docx导出pdf"的项目提供了一个Java解决方案,通过利用Apache POI和iText库,实现了从Docx到PDF的快速转换,适用于各种需要文档转换的场景。
2. **PDF导出模板demo**:模板是预定义的PDF结构,可以简化PDF生成过程。开发者可以创建一个模板,包含固定布局和样式,然后在运行时填充数据。这通常涉及到`PdfStamper`或`PdfCopy`类的使用,它们允许在现有PDF上...
本文将深入探讨如何使用Java来根据模板导出包含统计图的PDF文档。主要涉及的技术包括iText库、FreeMarker模板引擎以及可能的数据可视化工具。 首先,iText是一个强大的Java库,专门用于创建和操作PDF文档。它提供了...
本篇文章将详细介绍如何利用iText库操作PDF,从数据库中导出大量数据。 首先,我们需要理解iText的基本概念和功能。iText提供了丰富的API,可以用于创建新的PDF文档、添加文本、图像、表格、链接等元素,以及对已有...
在Java开发中,导出PDF文件是一项常见的任务,特别是在生成报告、文档或发票等场景下。PDF(Portable Document Format)是一种跨平台的文件格式,能够保持文档的原始格式,无论在哪种设备上打开都能保持一致的显示...
Java导出PDF文件是开发...总之,Java导出PDF文件涉及的主要知识点包括:iText库的使用、PDF文档结构、内容添加方法、数据库操作以及参数处理。通过熟练掌握这些技能,你可以轻松地在Java项目中生成各种复杂的PDF文档。
在Java开发中,PDF文档的生成与处理是一个常见的需求,特别是在需要导出具有中文字符的文档时。iText是一个流行的PDF库,它提供了强大的API来创建、修改和操作PDF文件。然而,对于中文字符的支持,iText的标准版本...
这篇博客文章“JAVA导出PDF Itext 中文文档”可能详细介绍了如何利用Itext库在Java中生成包含中文字符的PDF文件。Itext库支持多种语言,包括中文,使得开发者能够方便地创建多语言的PDF文档。 首先,生成PDF时,...