`
weigang.gao
  • 浏览: 491654 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

itext制作pdf报表

 
阅读更多

            最近在公司维护一个项目,这个项目是使用itext1.3制作报表的(估计已近是古董了,现在itext5.5都出来了)。

            问题:使用adobe acrobat proffessional 7.0制作的模板文本域中不能填充 数据(默认字体情况下) 。

            根据字体选择的不同,文本域是可以填充数字和英文的,但还是不同填充 中文。

            而以前系统中的模板,中英文都能填充

            原因:itext1.3支持STsong-Light字体,也是说文本域要选择STsong-light字体,但是高版本的adobe acrobat中都也是有STsong-light字体,可能是字体的版本不同吧,反正不能填充进去。所以中文无法显示,adobe acrobat5.0中好像有这个字体

 

            解决:把以前项目中的模板中的 文本域 拷贝  到 你pdf模板中,加以修改 文本域  的名字,就可以正常使用显示中文了。

            

            使用itext.2.1.7,配合adobe acrobat proffessional 9.0是没有任何问题的,但是换成itext1.3不能显示中文

import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import com.lowagie.text.pdf.AcroFields;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;

public class ActionGetFrPolicyPdf {
	// 模板存放 的 目录
	public static final String frpolicypdfpath = "G:\\report_tool\\template";
	
	public static void main(String[] args) {
		Map<String,String> hm = new HashMap<String, String>(); 
		hm.put("fileName", "template");
		hm.put("name", "高伟刚");
		hm.put("address", "湖北武汉");
		hm.put("love", "basketball");
		
        try{
		String pdfpath = CreatePdf((HashMap<String,String>)hm);
        }catch(Exception e){
        	e.printStackTrace();
        }
		
	}
	
	public static String CreatePdf(HashMap<String, String> hm) throws Exception {
			
		String sysdate = GetSysdate();
		String year_sys = sysdate.substring(0, 4);
		String month_sys = sysdate.substring(5, 7);
		String day_sys = sysdate.substring(8, 10);

		String PdfFileName = frpolicypdfpath + "\\" + year_sys + month_sys
				+ day_sys + "_" +hm.get("love") + "_freepolicy.pdf";
		
		String PdfFileTemplate = GetPdfPath((String) hm.get("fileName"));
		PdfReader reader = new PdfReader(PdfFileTemplate);
		FileOutputStream fos = new FileOutputStream(PdfFileName);
		PdfStamper stamp = new PdfStamper(reader, fos);
		AcroFields fields = stamp.getAcroFields();
		for (Iterator it = fields.getFields().keySet().iterator(); it 
				.hasNext();) { 
				System.out.println("field:--"+it.next()); 
		} 
		
		/* 为字段赋值,注意字段名称是区分大小写的 */
		for(String key:hm.keySet()){
			fields.setField(key, hm.get(key));
		}
		stamp.setFormFlattening(true);
		stamp.close();
		reader = null;
		return PdfFileName;
	}

	public static String GetSysdate() {
		java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd");
		java.util.Date date = new java.util.Date();
		String sysdate = df.format(date);
		return sysdate;
	}
	// 获取pdf模板的全路径
	public static String GetPdfPath(String fileName) {
		String pdfpath = frpolicypdfpath + "\\"+ fileName + ".pdf";
		return pdfpath;
	}
}

 

        iText默认不支持亚洲语言,导致iText生成中文出现问题,一般都是中文内容不能出现在pdf上,这是因为没有中文字体的原因.

       要让iText支持中文,需要一个jar包:

                     iText语言包:iTextAsian.jar

但缺乏iTextAsian.jar时,可能就会报如下错误,不能将java程序中的中文  转换成 文本域中的字体(文本域中的字体是STsong-Light)



 
      

  • 大小: 19.4 KB
分享到:
评论

相关推荐

    itext导出PDF所需jar包

    iText允许开发者通过编程方式生成高质量的PDF文档,包括文本、图像、表格、链接等多种元素,适用于各种业务场景,如报表生成、电子书制作等。 iText-2.1.7.jar是iText库的主要部分,包含了处理PDF文档的核心功能。...

    利用itext操作pdf从数据库导出大量数据--汇总(一)

    这篇博客"利用iText操作PDF从数据库导出大量数据--汇总(一)"显然讨论了如何利用iText将数据库中的数据高效地导出到PDF文件中,这对于报告生成、数据分析或者报表制作等场景非常有用。 首先,我们需要了解iText的...

    itext生成pdf文件-表格

    在IT行业中,生成PDF文件是一项常见的任务,特别是在文档制作、报表导出以及数据展示等领域。iText是一个流行的Java库,专门用于创建和编辑PDF文档。本文将深入探讨iText如何生成包含表格的PDF文件,同时结合提供的...

    JAVA使用itextpdf实现HTML转PDF

    在IT行业中,将HTML页面转换为PDF文档是一个常见的需求,特别是在报表生成、电子书制作或者网页保存为离线阅读格式时。本主题聚焦于使用Java的iTextPDF库来完成这个任务。iTextPDF是一个强大的Java库,允许开发人员...

    iText-2.1.5.jar and iTextAsian.jar

    在Java程序中利用iText制作PDF报表是一项常见且实用的技术。以下是一些关键知识点: 1. **PDF基础知识**:PDF(Portable Document Format)是一种跨平台的文件格式,能够精确地保留文档的原始格式和布局。iText库...

    itext报表类库 柱形图,饼图,折线图

    使用iText制作图表时,还需要注意以下几点: - 数据的准备:将业务数据转换为适合绘图的格式。 - 图表布局:考虑图表的大小、位置和边距,以及与文本的配合。 - 渲染优化:为了提高PDF的渲染速度和文件大小,可能...

    itextpdf-5.5.9.jar和中文支持包itextasian-5.5.9.jar

    这个库广泛应用于报表生成、电子发票、合同制作等领域。 iTextPDF的核心特性包括: 1. **PDF生成**:你可以使用iTextPDF创建全新的PDF文档,添加文本、图像、表格、链接等元素。 2. **PDF编辑**:iTextPDF允许你...

    itext7 根据pdf模板填充图像框

    在实际工作中,经常需要根据模板批量生成PDF文档,特别是在人事管理、财务报表等领域。使用itext7进行PDF文档处理是一个非常实用的选择。itext7是一款功能强大的PDF处理库,支持Java等多种语言,能够帮助开发者轻松...

    iText2.1.7资料大全(制作PDF的java开源框)

    相关教程 iText 简介 iText创建文档简介 iText入门实例 IText使用PDF模板输出报表的实践 我和iText第一次亲密接触 相关JAR iText-2.1.7.jar(核心) iTextAsian.jar(中文支持) iText-rups-2.1.7.jar iText-rtf-...

    iText可以制作PDF文件的JAVA源程序

    iText是一款强大的开源Java库,...这个压缩包提供的源程序和文档,对于学习和使用iText进行PDF文件制作是非常宝贵的资源。通过深入研究和实践,开发者可以充分利用iText的强大功能,创建出专业且富有吸引力的PDF文档。

    itext制作pdf

    总的来说,iText为开发者提供了强大且灵活的PDF生成能力,使得在服务器端通过JSP或JavaBean生成PDF报表成为可能,且客户端可以通过超链接轻松访问或下载这些报表,从而优化了B/S系统的报表处理流程。无论是简单的...

    itextpdf-5.5.13.jar,jacob.jar以及jacob.dll文件

    iText的强大功能使得它在各种业务场景中广泛应用,如报表生成、电子发票制作等。 2. **jacob.jar**:Jacob(Java COM Bridge)是一个开源Java库,它提供了一个接口来调用Windows上的COM组件(Component Object ...

    使用itext生成PDF文件

    在IT行业中,生成PDF文件是一项常见的任务,特别是在报表、文档管理和电子书制作等领域。iText是一个流行的Java库,用于创建和修改PDF文档。本篇文章将详细介绍如何使用iText库生成PDF文件,以及在这个过程中可能...

    Struts2+IText动态导出PDF示例源码

    这在报表生成、合同制作、证书打印等场景中非常实用。 首先,Struts2作为控制器层框架,负责接收用户请求并转发到相应的业务逻辑。在处理导出PDF的请求时,Struts2的Action类会接收到前端的请求参数,如用户选择的...

    itextpdf-5.4.3.jar.rar

    在实际应用中,iTextPDF广泛应用于报表生成、电子发票、合同制作等领域。例如,开发者可以通过iTextPDF轻松地将数据库中的数据转换成格式化的PDF报告,或者从现有的PDF文档中提取文本和图像信息。同时,其提供的事件...

    itextpdf和中文支持包

    这个库在IT行业中广泛应用,尤其是在需要处理PDF文档的场景下,例如报表生成、电子发票、合同制作等。标题中的"itextpdf和中文支持包"表明我们关注的是iText如何处理中文字符的问题。 iTextPDF 5.5.9是其特定的版本...

    itext报表生成工具

    在IT行业中,尤其是在报表生成、电子发票制作以及文档自动化等领域,IText是广泛应用的工具之一。 在描述中提到的“eclipse3.2+myeclipse5.5”是两个流行的Java集成开发环境(IDE)。Eclipse是一个通用的开源IDE,...

    用iText类库制作PDF文档

    在实际项目中,iText常用于报表生成、电子发票、合同文档等场景,通过编程动态生成内容丰富的PDF文档。 总之,iText提供了一整套强大的工具,让开发者能够轻松地创建高质量的PDF文档。通过熟练掌握iText的使用,...

    iText5.0.6PDF操作包+iTextAsian.rar中文支持包

    1. **报表生成**:开发人员可以利用iText动态生成包含中文数据的PDF报告,例如财务报表、销售统计等。 2. **电子书籍制作**:在制作电子书时,iText可以帮助将中文文本转换为高质量的PDF格式,便于阅读和分享。 3. *...

    itext 2.1.7工具包及demo,java生成pdf

    通过熟悉其API和示例,我们可以轻松地在项目中集成PDF生成功能,无论是简单的文本报告,还是复杂的报表和表单,IText都能应对自如。尽管后续版本可能对商业使用有所限制,但2.1.7版本的开源特性使其成为一个极具价值...

Global site tag (gtag.js) - Google Analytics