最近在公司维护一个项目,这个项目是使用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)
相关推荐
相关教程 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。通过在服务器端使用Jsp 或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解决...
利用itext在java程序中制作PDF报表;利用itext在java程序中制作PDF报表
itext详细使用手册 doc格式的 itext用于生成pdf文档 或者制作pdf报表的免费软件
关于PDF文件制作及操作的经典书籍,适用于java C#等多种语言,可以添加图片,水印,各种字体,报表,教你如何一步一步的成为PDF编程高手,真正的step by step,深入浅出,五步即可制作自己的PDF文件。
jsp用pdf文件制作报表,itext最新jar包。
目前世面上比较流行的制作PDF报表的工具如下: 1. iText PDF:iText是著名的开放项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 2. ...
用C#制作PDF文件全攻略 丽水市汽车运输集团有限公司信息中心 苟安廷 目 录 前 言 3 第一部分 iText的简单应用 4 第一章 创建一个Document 4 第一步 创建一个Document实例: 5 第二步 创建Writer实例 6 第三步 打开...
结合报表制作的两种情形介绍了iText的应用方法。一种是由程序对象动态产生整个报表文件的内容,另一种是在已存在的PDF报表文档中填写数据域以完成报表。给出了Java实现报表打印的控制方法。
文章目录一、PDF报表打印概述1.1 概述1.2 常见PDF...目前世面上比较流行的制作PDF报表的工具如下: 名称 介绍 iText PDF iText是著名的开放项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或r
当然了我们要生成PDF报表肯定使用JasperReports组件了。 JasperReports的开发是由一份XML格式的报表的文件开始的,设计好这个XML文件后,利用JasperReports的API进行编译,填充数据,导出或者浏览,这样可以生成多种...
52. 使用iText生成PDF? 53. 制作图片水印? 54. 在页面中屏蔽键盘功能键? 55. 禁止用户复制网页内容? 56. 实现不在地址拦中显示当前URL? 57. 获取用户的真实IP地址? 58. 获取用户浏览器信息? 59. 获取当前绝对...
使用iText生成PDF? 53. 制作图片水印? 54. 在页面中屏蔽键盘功能键? 55. 禁止用户复制网页内容? 56. 实现不在地址拦中显示当前URL? 57. 获取用户的真实IP地址? 58. 获取用户浏览器信息?...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,...