在利用iText.jar和iTextAsian.jar生成pdf文件时有时遇到了

Exception in thread "main" com.lowagie.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.

at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source)
at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source)
at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source)
at timer.TestPdf.getPdf(TestPdf.java:34)

at timer.TestPdf.main(TestPdf.java:21)

这个错误。

经过查看iText-2.1.5.jar中的源码发现了在CJKFont.class中有这样两行代码

 InputStream inputstream = getResourceStream("com/lowagie/text/pdf/fonts/cjkfonts.properties");cjkFonts.load(inputstream);inputstream.close();inputstream = getResourceStream("com/lowagie/text/pdf/fonts/cjkencodings.properties");cjkEncodings.load(inputstream);inputstream.close();

这是通过iTextAsian.jar中的配置文件来取字符编码的,由于iText.jar版本的不同,目录文件做了改动,例如在iText-5.0.6.jar中变成了下面这样

InputStream is = getResourceStream("com/itextpdf/text/pdf/fonts/cjkfonts.properties");cjkFonts.load(is);is.close();is = getResourceStream("com/itextpdf/text/pdf/fonts/cjkencodings.properties");cjkEncodings.load(is);is.close();

所以我们只需要调整iTextAsian.jar的目录结构即可。也可以像我这样为了适应2个版本的iText.jar,我建了2个目录如下。

特别提醒:在向pdf表单写入中文时,如果用默认的表单可能会出现中文不显示的问题,建议将默认生成的删掉,自己手动添加上去,并把字体设置为“宋体”。

遇到 com.lowagie.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.相关推荐

  1. 使用JasperReport 引擎PDF报表,因为iText版本升级,由原来的包名com.lowagie.text.pdf.fonts转化为com.itextpdf.text.pdf.fonts

    使用JasperReport 引擎PDF报表,因为iText版本升级,由原来的包名com.lowagie.text.pdf.fonts转化为com.itextpdf.text.pdf.fonts,如果 ...

  2. 关于com.lowagie.text包的报错问题

    关于com.lowagie.text包的报错问题 接手了一个maven项目,导入之后发现一直报错 提示我找不到这个包,在右侧的maven projects一栏中找了一下,也确实没有com.lowagi ...

  3. 解决Java.lang.NoClassDefFoundError:com/lowagie/text/Elemen的问题

    正在写用itext导出word的项目,在pom.xml里写了以下代码下载itext 2-1-7.jar. <dependency><groupId>com.lowagie< ...

  4. 异常记录 之 nested exception is java.lang.NoClassDefFoundError: com/lowagie/text/pdf/PdfContentByte

    nested exception is java.lang.NoClassDefFoundError: com/lowagie/text/pdf/PdfContentByte 在MVC 集成jaspe ...

  5. java 使用itext导出PDF文件,中文不显示问题解决

    之前写的java 使用itext 导出pdf 发现有个问题,在今天使用的时候,发现一个问题,就是当单元格中写中文的时候,导出来的pdf中文不显示. java 使用itext导出PDF文件,图片文字左右 ...

  6. Java 使用jacob实现各类办公文档(ppt,Excel,word,text,imge)转换成PDF

    //代码中都有注释,使用注解的地方大家可以略过 package com.frank.demo.file.common.util; import java.io.ByteArrayOutputStrea ...

  7. java 生成 pdf html转pdf 支持 中文 自定义模板

    java 生成pdf DEMO 开发过程中遇到的坑 /** * 切记 css 要定义在head 里,否则解析失败 * css 要定义字体 * 字体中英文 https://www.cnblogs.com ...

  8. Spring Boot Freemark HTML 生成 PDF、生成水印Logo、docx文件生成PDF,Jar包运行可读取模板文件、字体文件

    用于通过模板生成PDF,在项目中生成个人授权协议函.个人电子保单.流水报表,数据报表等,将HTML静态模板写出来后,将数据替换成动态数据即可. <!-- html2pdf --> < ...

  9. java pdf 中文_java-pdf-itext 生成pdf 文档(支持中文字体)

    java-pdf-itext 生成pdf 文档(支持中文字体) itext 版本:2.1.7 package com.demo.preview; import java.io.ByteArrayOut ...

最新文章

  1. VS 2008 mfc 智能应用程序 调用 C# webservice.(二)(gsoap+wince)
  2. php获取一维,二维数组长度的方法(有实例)
  3. 在内网服务器中获得真正的客户端ip的方法
  4. linux如何挂载windows共享文件,linux如何挂载windows下的共享文件
  5. 毕业的答辩需要的要求(从校方的角度)
  6. DCMTK:测试dcmiod的代码序列宏实现
  7. Spring-----多环境中加载资源配置文件
  8. spring roo_使用Spring Roo进行概念验证
  9. 初识html 尝试图片标签 0907
  10. (76) Clojure: Why would someone learn Clojure? - Quora
  11. Linux 各类软件整理汇总
  12. 网页布局颜色搭配布局总结
  13. 智库说 | 杨宁:从城市管理走向城市治理 大数据将发挥更大作用
  14. Android 网易云信直播
  15. 全球及中国商业航天产业应用模式探析及投资布局态势分析报告2021-2027年版
  16. Sentinel-1 SAR数据与精密轨道数据下载
  17. Problem B: 小度挑战赛
  18. 解决火狐浏览器提示连接不安全或证书错误的问题
  19. 使用按键精灵自动截图并保存重命名
  20. 泰勒公式求e值——c语言算法实现

热门文章

  1. linux的可执行文件存放位置
  2. 在java中在包com.db_java基础试题及其答案 (1)
  3. Dell Inspiron 3650 +750ti 安装黑苹果
  4. Linux网络编程(网络七层协议,TCP/IP,三次握手四次挥手,TCP/UDP的区别)
  5. 关于使用Karate-实现上传文件接口测试方法总结
  6. linux怎样测试tty,ttylinux 设置
  7. 内网访问外网和外网访问内网的原理
  8. 小区宽带计费解决方案
  9. 《uniapp基础知识》学习笔记Day38-(Period2)全局文件一些常用的配置
  10. python语言程序设计基础(第2版) 嵩天 礼欣 黄天羽 著