itext生成pdf加了iTextAsian.jar还是报“Font 'STSong-Light' with 'UniGB-UCS2-H' is not re“

brzone 2012-11-16 10:03:00
我下载了最新版的itext,版本是5.3.4,也下载了iTextAsian.jar,由于5.0后的itextjar包的包名字改了,然后,我重新修改iTextAsian.jar的包路径,由com.lowagie.text.pdf.fonts 更新为com.itextpdf.text.pdf.fonts,,然后按照网上的方法,把它加到classpath里面,,然后代码,

String filePath = "hello.pdf";

Document document = new Document();

PdfWriter.getInstance(document, new FileOutputStream(filePath));

document.open();

BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);

Font chineseFont= new Font(bfChinese, 12, Font.NORMAL);

PdfPCell cellReportSummary = new PdfPCell(new Phrase("支持中文",chineseFont));

document.add(cellReportSummary);

document.close();
,还是报: Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.的错误,是不是我的classpath有问题,还是其他的?
...全文
19173 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicocarrey 2015-07-03
  • 打赏
  • 举报
回复
<!-- iText --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.3</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> 我用的5.5.3,直接引的asian5.2.0的版本,什么都没改。
sxtyshi 2015-03-29
  • 打赏
  • 举报
回复
这个问题,我是这么解决的。 引入 itextpdf <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.4.3</version> </dependency> itext-asian 引入的版本是5.2.0 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> 这样问题得到解决
guyu1985 2014-05-07
  • 打赏
  • 举报
回复
我也遇到了这个问题,导入itext-asian.jar包后,仍然报这个错。此前,我的itext版本是5.0.6,后来我换成了5.4.3,问题解决了。itext-asian.jar我使用的是extrajars-2.3解压出来的版本。我只有itext的maven依赖,itext-asian是从外部导入的jar包。itext5.4.3的依赖如下: <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.4.3</version> </dependency>
q徒步 2014-04-18
  • 打赏
  • 举报
回复
最近也在搞jasperreport 报表, 挺实用的 赞歌
phoenix2xp 2013-10-19
  • 打赏
  • 举报
回复
引用 10 楼 hwx4329 的回复:
[quote=引用 9 楼 hwx4329 的回复:] 另外一个解决方案就是直接放弃iTextAsian.jar,利用系统字库,不过只知道Windows的方案: BaseFont font = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
这个可以把SIMSUN.TTC文件拷贝出来,单独放在项目里。其实iTextAsian.jar也只是提供这么一个字体库。[/quote] 直接把SIMSUN.TTC扔到src下,最多就是发布的文件大了十几M
纳阳 2013-05-22
  • 打赏
  • 举报
回复 1
引用 9 楼 hwx4329 的回复:
另外一个解决方案就是直接放弃iTextAsian.jar,利用系统字库,不过只知道Windows的方案: BaseFont font = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
这个可以把SIMSUN.TTC文件拷贝出来,单独放在项目里。其实iTextAsian.jar也只是提供这么一个字体库。
纳阳 2013-05-21
  • 打赏
  • 举报
回复 1
研究了源代码发现,最新的版本5.3.4与iTextAsian.jar不兼容,连访问的资源文件名都改了, - -! 重新下载了一个5.0.1版本,解决问题,不报介个错了。 不过发现只能识别少数汉字,这个。。。。。。蛋疼
纳阳 2013-05-21
  • 打赏
  • 举报
回复 1
另外一个解决方案就是直接放弃iTextAsian.jar,利用系统字库,不过只知道Windows的方案: BaseFont font = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
mronethousand 2013-05-20
  • 打赏
  • 举报
回复
求解决方案。。
liangjw1018 2013-03-11
  • 打赏
  • 举报
回复
求解决方案啊。。。
xietianhua126 2013-03-07
  • 打赏
  • 举报
回复
碰到同样的问题,求解决方案,网上的解决方案都试过了,改包名等等都不行。。。
chenxijun_ 2012-12-22
  • 打赏
  • 举报
回复
这个问题解决了吗?我也碰到类似的问题,网上说的classpath是类路径不是系统变量吧。
brzone 2012-11-16
  • 打赏
  • 举报
回复
还有一点,我的项目是添加了jdk,是直接执行下载好的jdk目录,难道这样,设置的classpath就没什么作业?
brzone 2012-11-16
  • 打赏
  • 举报
回复
然后,我有怀疑,打包有错,我特意从csdn上面下载了,打包好的iTextAsian.jar,但故障依然。
brzone 2012-11-16
  • 打赏
  • 举报
回复
我修改包路径,由com.lowagie.text.pdf.fonts 更新为com.itextpdf.text.pdf.fonts,我有重新打包jar的。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧