`
weigang.gao
  • 浏览: 470267 次
  • 性别: 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
分享到:
评论

相关推荐

    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报表类库 柱形图,饼图,折线图

    itext 报表工具 柱形图,饼图,折线图。。。

    itext制作pdf

    在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText。通过在服务器端使用Jsp 或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解决...

    iText-2.1.5.jar and iTextAsian.jar

    利用itext在java程序中制作PDF报表;利用itext在java程序中制作PDF报表

    itext使用说明

    itext详细使用手册 doc格式的 itext用于生成pdf文档 或者制作pdf报表的免费软件

    Itext in Action: Creating and Manipulating PDF

    关于PDF文件制作及操作的经典书籍,适用于java C#等多种语言,可以添加图片,水印,各种字体,报表,教你如何一步一步的成为PDF编程高手,真正的step by step,深入浅出,五步即可制作自己的PDF文件。

    iText-5.0.1.jar

    jsp用pdf文件制作报表,itext最新jar包。

    zxing.java源码解析-report:生成pdf报表

    目前世面上比较流行的制作PDF报表的工具如下: 1. iText PDF:iText是著名的开放项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 2. ...

    asp·net生成PDF详解

    用C#制作PDF文件全攻略 丽水市汽车运输集团有限公司信息中心 苟安廷 目 录 前 言 3 第一部分 iText的简单应用 4 第一章 创建一个Document 4 第一步 创建一个Document实例: 5 第二步 创建Writer实例 6 第三步 打开...

    利用iText包实现Java报表打印

    结合报表制作的两种情形介绍了iText的应用方法。一种是由程序对象动态产生整个报表文件的内容,另一种是在已存在的PDF报表文档中填写数据域以完成报表。给出了Java实现报表打印的控制方法。

    JasperReport开发(一)

    文章目录一、PDF报表打印概述1.1 概述1.2 常见PDF...目前世面上比较流行的制作PDF报表的工具如下: 名称 介绍 iText PDF iText是著名的开放项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或r

    技术文档--业务层应用技术

    当然了我们要生成PDF报表肯定使用JasperReports组件了。 JasperReports的开发是由一份XML格式的报表的文件开始的,设计好这个XML文件后,利用JasperReports的API进行编译,填充数据,导出或者浏览,这样可以生成多种...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    52. 使用iText生成PDF? 53. 制作图片水印? 54. 在页面中屏蔽键盘功能键? 55. 禁止用户复制网页内容? 56. 实现不在地址拦中显示当前URL? 57. 获取用户的真实IP地址? 58. 获取用户浏览器信息? 59. 获取当前绝对...

    jsp编程技巧集锦

    使用iText生成PDF? 53. 制作图片水印? 54. 在页面中屏蔽键盘功能键? 55. 禁止用户复制网页内容? 56. 实现不在地址拦中显示当前URL? 57. 获取用户的真实IP地址? 58. 获取用户浏览器信息?...

    java源码包---java 源码 大量 实例

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象...

    java源码包2

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...

    java源码包3

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...

    java源码包4

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,...

Global site tag (gtag.js) - Google Analytics