iText是一个非常出色的生成PDF文件的Java类库,但iText自带的字体对中文不是很支持,所以需要引入自己的字体。
Windows字体非常丰富,只需要将Windows中的中文字体上传到Linux服务器上并生成字体索引,然后引用想要的字体即可。

上传字体

在Windows中找到想要的中文字体(或者把所有的中文字体上传到Linux),右键属性能看到.ttf或.ttc格式的字体名称:

将Windows字体拷贝到Linux服务器:

# 1.安装字体命令、安装字体索引指令
yum -y install fontconfig
yum install mkfontscale
# 2.查看已安装字体
# (1)查看linux已安装字体
fc-list
# (2)查看linux已安装中文字体
fc-list :lang=zh
# 3.安装中文字体
# (1)创建目录
mkdir -p /usr/share/fonts/my_fonts
# (2)将要安装的字体上传到该文件夹下这里我们安装楷体 常规,即simKai.ttf。
# 关于具体字体查找,我以windows为例。进入C:\Windows\Fonts,该文件夹下就存放相关字体,
# 将simhei.ttf拷贝到linux 目录/usr/share/fonts/my_fonts下即可,如:
cp simKai.ttf /usr/share/fonts/my_fonts
# (3)生成字体索引,进入目录 cd  /usr/share/fonts/my_fonts,执行索引字体生成
mkfontscale
# (4)刷新linux的字体缓存,使其立刻生效
fc-cache -fv
# 4.查看黑体常规字体是否安装成功
fc-list :lang=zh

代码中引用字体

Windows系统下测试:

BaseFont bfKai = BaseFont.createFont("c://windows//fonts//simkai.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font myKai8B = new Font(bfKai, 8, Font.BOLD);

Linux系统字体路径引用:

BaseFont bfKai = BaseFont.createFont("/usr/share/fonts/my_fonts/simkai.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);  //楷体
Font myKai8B = new Font(bfKai, 8, Font.BOLD);

当字体为字体集时需要指定第几个:

BaseFont bfSong = BaseFont.createFont("/usr/share/fonts/my_fonts/simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);  //宋体
Font mySong8B = new Font(bfSong, 8, Font.BOLD);

不同国家字体的选择

itext对不同国家的语言似乎没有提供一个统一的字体,不同国家的语言需要引用本国的字体,如中文需使用simkai.ttf、simsun.ttc等、韩语需使用malgun.ttf、泰语需要用LeelawUI.ttf,怎么找这些字体呢?其实Widows的字体就很全面,直接在C:\Windows\Fonts找对应国家字体即可:

解决iText导出pdf文件中文字体不显示问题相关推荐

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

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

  2. java 生成字体文件,java使用itext生成pdf文件-设置字体,itextpdf,import com.l

    java使用itext生成pdf文件-设置字体,itextpdf,import com.limport com.lowagie.text.Document;import com.lowagie.tex ...

  3. 导出PDF文件中文显示不完整

    使用PDF模板导出PDF文件,导出内容里中文显示不完整,解决方法: 使用Adobe Acrobat DC工具,将PDF模板中表单的字体设置为Adobe 黑体 Std R即可.

  4. Itext导出pdf文件

    使用iText生成pdf文件并导出 前言: 项目中需要给用户提供一个可以导出pdf文件的功能,用来展示本月的数据.像excel.word这种直接就可以使用POI进行导出了,但是导出pdf格式的文件 我 ...

  5. java itext 导出pdf文件_【Java,PDF】使用Itext实现PDF文件生成

    重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 前言 有时候,业务系统要求提供一个PDF文件导出的功能,这时候我们就需要将数据库的对应数据查询出来,然后生成 ...

  6. java 使用itext 导出pdf 控制图片的大小

    在使用itext 导出pdf 的过程中,可能会遇到这样的需求,就是导出文字加图片.使用我们前面写的程序,确实是可以导出图片,如果针对于类似简历的需求,图片填充单元格,会满足效果,如下图所示: 但在实际 ...

  7. Linux下Java Font 中文字体不显示

    为什么80%的码农都做不了架构师?>>>    linux系统中jre不支持字体解决方法 Linux下Java中文字体不显示 https://blog.csdn.net/kenera ...

  8. IText导出PDF添加图片,解决中文问题

    利用IText导出PDF: 使用.ftl模板引入图片不显示,不报错,但是它找不到图片, .separator {margin: 15px;height: 16px;text-align: center ...

  9. 关于RDLC使用导出PDF文件时,中文乱码解决方案

    MicrosftReportViewer控件导出乱码,主要需要设置的是RDCL文件: 关于使用RDLC导出PDF文件时,中文出现乱码现象,本文进行了解决: 其实很简单. 本人平台情况VS2008 英文 ...

最新文章

  1. 易语言录入数据到access里重复提示_一招搞定:excel数据共享协同
  2. CentOS中安装的Gitlab忘记管理员密码怎样重置密码
  3. Vue团队核心成员开发的39行小工具 install-pkg 安装包,值得一学!
  4. 【转】RNN、LSTM、Transformer、BERT简介与区别
  5. 部署flas到服务器:No module named flask
  6. const C++ 用法总结
  7. nginx每日日志切割脚本
  8. 如果Mac在播放音乐时遇到问题,没有声音或无法调整音量,该怎么办呢?
  9. C++基础语法-02-运算符重载
  10. mysql8.0驱动包下载_Java JDBC 驱动包下载,MySQL 8及以上适用, mysql-connector-java-8.0.22.jar 官方版。...
  11. 计算机麦克地址,WO Mic Client
  12. Android Studio 调试的时候出现 Access denied finding property “ro.serialno“
  13. android zooming bitmap
  14. unityshader 晶格化消散
  15. 浏览器无法访问部分网站
  16. opensips-02
  17. ocx插件: AniGIF.ocx安装
  18. 设置IE浏览器文本模式为IE8或IE7
  19. 【5G核心网】5G概念以及名词缩写解释
  20. python 课程体系

热门文章

  1. Mac之zip unzip 命令(压缩)
  2. PX4模块设计之三十三:Sensors模块
  3. Netty中NioEventLoop的两个逻辑点分析
  4. matlab给数组等间距赋值从5到15,matlab等间隔连续赋值
  5. 学习模拟实现strlen strcmp strcpy strcat strstr等库函数
  6. MSP430FR6989系列教程之LCD
  7. 国庆快乐!上班中...
  8. 计算机控制系统中典型形式,四川大学14春《计算机控制系统2380》14春在线作业1、2...
  9. angular项目中的增删改功能
  10. 解决英伟达Jetson平台使用Python时的出现“Illegal instruction(cpre dumped)”错误