Itext 使用入门 之 创建pdf 文档 附中文解决方案
2010-12-29 17:55
671 查看
Itext.jar 的版本是 5.0.5
往 c:/test.pdf 文件写入中文
BaseFont chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
若 BaseFont 如此定义 则会报一个
com.itextpdf.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.
原因: 以及解决方案: (摘自网上未测试.....)
http://cst.is-programmer.com/posts/18844.html
Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized
还是不行,继续研究,在网上前辈们说如下原因:
具体解决方法就是修改包的路径了,详细方法如下:
运行结果,OK,解决问题。
===========================
可以使用系统自带的字体
或者 将simsun.ttc复制到 src 目录下面;
至此问题解决
往 c:/test.pdf 文件写入中文
Document doc = new Document(); FileOutputStream out = new FileOutputStream(new File("C:/test.pdf")); PdfWriter.getInstance(doc, out); //文字com/lowagie/text/pdf/fonts/ // BaseFont chinese = BaseFont.createFont("STSong-Light", // "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); // BaseFont chinese = BaseFont.createFont("C:/windows/fonts/simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); BaseFont chinese = BaseFont.createFont(PdfTest.class.getResource("/") + "/simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); Font fontChinese = new Font(chinese, 12, Font.NORMAL); Paragraph text = new Paragraph("你好。。。。",fontChinese); doc.open(); // 打开文档 doc.add(text); doc.add(text); doc.close();
BaseFont chinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
若 BaseFont 如此定义 则会报一个
com.itextpdf.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.
原因: 以及解决方案: (摘自网上未测试.....)
http://cst.is-programmer.com/posts/18844.html
Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized
还是不行,继续研究,在网上前辈们说如下原因:
iText5.x版本以上中的font和encoding文件都是从String RESOURCE_PATH = "com/itextpdf/text/pdf/fonts/"加载的,而老itextasian.jar的包名是com.lowagie.text.pdf.fonts, 包名不一致导致路径错误,。 |
1.解压iTextAsian.jar 得到如下目录: iTextAsian --com --lowagie --text --fonts --...(字体属性文件) 2.将解压后的com目录下的包名lowagie更改为itextpdf 3.在命令行转至iTextAsian目录,重新打包为iTextAsian.jar文件 4.打包命令如下: jar cvf iTextAsian.jar com/itextpdf/text/pdf/fonts/* 5.执行后,将新的iTextAsian.jar加入classpath路径 |
===========================
可以使用系统自带的字体
BaseFont chinese = BaseFont.createFont("C:/windows/fonts/simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
或者 将simsun.ttc复制到 src 目录下面;
BaseFont chinese = BaseFont.createFont(PdfTest.class.getResource("/") + "/simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
至此问题解决
相关文章推荐
- Itext 使用入门 之 创建pdf 文档 附中文解决方案
- Itext 使用入门 之 创建pdf 文档 附中文解决方案
- 使用iText创建PDF文档,代码整理自iText官网
- 使用itext创建PDF文档-导出大表格-每页显示标题-项目实战
- 使用itext生成PDF文档入门
- 使用IText库创建PDF文档
- java使用iText生成pdf文档的对齐方式
- 如何在使用itext生成pdf文档时给文档添加背景图片
- 使用Zend Framework中的 Zend_Pdf来创建pdf文档
- 如何使用ABBYY FineReader 14创建PDF文档
- Java iText使用PDF模板生成PDF文档
- Java导出PDF文档使用iText操作
- CentOS6.4下使用默认的文档查看器打开PDF文档乱码的解决方案
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)(转载)
- CentOS下使用默认的文档查看器打开PDF文档乱码的解决方案
- 使用.NET中的XML注释(二) -- 创建帮助文档入门篇
- 使用iText库创建PDF文件
- iText使用入门,输出pdf到浏览器
- 使用iText库创建PDF文件(含中文解决方案)