这两天开始学iText做pdf报表了。
我以前都是用ireport设计报表的,不敢说会用,但起码略懂(还曾设计过某特著名高校的本科生学位证、毕业证等)。最近设计的pdf报表的问题却把我搞的无从下手:有些field中的文字是重叠出现的,不是某个field全是这样,是偶尔出现。
没法子,只能改了。决定用iText,虽然说jasper封装的是iText,但还是要试试。万幸,用了iText,这个问题没有再出现了。
下面说说这两天用iText解决的以及没解决的问题(我下载的是itext-5.1.0):
1.错误信息:com.itextpdf.text.DocumentException: Font "STSongStd-Light" with "UniGB-UCS2-H" is not recognized。这是因为亚洲字体包没引入或引入了老版本的亚洲字体包(我当时就是从ireport中直接拿来这个包的,ireport用的是iText2.1.7,所以这个亚洲字体包是老版本的)。iText从5.0更改了包名,和以前的亚洲字体包不配套了。 去http://sourceforge.net/projects/itext/files/extrajars/下载extrajars-XX.zip,新的亚洲字体包就在这里面。请参照iText中的notice.txt文件。
2 .用table.getDefaultCell()设置的属性,并没有实现预想的效果。这个问题就没搞定,最后逐一设置的cell的属性。
3.大表格加入内存回收功能后,部分页面没有表头或多个表头。这个问题可就“神奇”了。首先,它居然把我不停地报内存溢出的问题搞定了(呵呵,这是它的功能所在,也是必须的);其次,居然有些页面没有表头。代码如下所示: int fregmentSize = 1017;// 定义每一段落的行数(用于释放内存) for (int i = 0; i < dataList.size(); i++) { if (i % fregmentSize == fregmentSize - 1) { document.add(table); table.deleteBodyRows(); table.setSkipFirstHeader(true); } ………… }
本来我定义的 fregmentSize 值是100,结果发现有些页面没有表头。这是因为清理table时正好达到页尾,即下一条数据需要在新的一页显示。这时table.setSkipFirstHeader(true)设置了表头不显示……悲剧了。可是如果设置显示表头table.setSkipFirstHeader(false),那么每次清理表格就会显示一次表头(pdf中就会一页中显示多个表头),显然更不合理。最后更改了fregmentSize 的值,以减少这样事情的发生。希望有解决这个问题的朋友能给留个解决方法。
4.在学习中会有一些例子中遇到RtfWriter2、HtmlWriter就不要深研究了。因为这两东西从5.0已经从itext中独立出来了。我在网上好不容找到iText-rtf包,还是老版本的,没下载。sourceForge中有这个项目,但却没有提供jar,有个svn项目:
<!--EndFragment-->
分享到:
相关推荐
IText相关的学习文档整理,包括操作PDF和word, 供其他开发人员使用和学习
IText 和 ITextAsian 的开发包
itext,是一个开发源代码的项目,你可以使用itext方便的实现pdf的输出,打印报表
多个版本的itext-jar包, itext-2.0.4/itext-2.1.5/itext-2.1.7
IText中文处理问题.txtIText中文处理问题.txtIText中文处理问题.txtIText中文处理问题.txt
java 生成pdf itext 学习详解
赠送jar包:itext-2.1.7.jar; 赠送原API文档:itext-2.1.7-javadoc.jar; 赠送源代码:itext-2.1.7-sources.jar; 赠送Maven依赖信息文件:itext-2.1.7.pom; 包含翻译后的API文档:itext-2.1.7-javadoc-API文档-...
里面包含iText7全部jar包,和iText的pdf文档,快来下载吧
itext 生成pdf 目录,itext 生成pdf 目录,itext 生成pdf 目录
iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便,下载iText.jar文件后,...
itextpdf5.5.0+itext-action5.2.0支持中文导出 建议使用第二或者第三种格式字体
itext是一个开放源代码的免费PDF库,使用它可以很轻松地创建pdf文档.它可以应用在j2se中,也可用在j2ee中.然而,关于这itext方面的资料实在是太少了,这本电子书是我花了很长时间从网上找来的,在此与大家分享一下. ...
Itext5.5.13 完整的全套包,包含bcpkix-jdk15on-1.47.jar bcprov-jdk15on-1.59.jar itext-asian-5.2.0.jar itext-hyph-xml-5.1.1.jar itext-pdfa-5.5.13-javadoc.jar itext-pdfa-5.5.13-sources.jar itext-pdfa-...
itext中文: public static void main(String[] args) { try { Document document = new Document(); OutputStream os = new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\test.pdf")); ...
iText-2.1.7.jar资源包,可以调用方法实现生成PDF文件! iTextAsian.jar可以解决生成PDF文件为中文的问题!
iText1.2.7、iText-rtf2.1.7、iTextAsian
itext 操作PDF需要的jar包
IText7jar集合
1、itext将静态html转pdf中文显示及换行问题 2、itext将静态html转pdf 字体问题 3、html转pdf 参考我的另外一篇博文https://blog.csdn.net/qq_38616723/article/details/125188407?spm=1001.2014.3001.5502