解决iText导出pdf文件中文字体不显示问题
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文件中文字体不显示问题相关推荐
- java 使用itext导出PDF文件,中文不显示问题解决
之前写的java 使用itext 导出pdf 发现有个问题,在今天使用的时候,发现一个问题,就是当单元格中写中文的时候,导出来的pdf中文不显示. java 使用itext导出PDF文件,图片文字左右 ...
- java 生成字体文件,java使用itext生成pdf文件-设置字体,itextpdf,import com.l
java使用itext生成pdf文件-设置字体,itextpdf,import com.limport com.lowagie.text.Document;import com.lowagie.tex ...
- 导出PDF文件中文显示不完整
使用PDF模板导出PDF文件,导出内容里中文显示不完整,解决方法: 使用Adobe Acrobat DC工具,将PDF模板中表单的字体设置为Adobe 黑体 Std R即可.
- Itext导出pdf文件
使用iText生成pdf文件并导出 前言: 项目中需要给用户提供一个可以导出pdf文件的功能,用来展示本月的数据.像excel.word这种直接就可以使用POI进行导出了,但是导出pdf格式的文件 我 ...
- java itext 导出pdf文件_【Java,PDF】使用Itext实现PDF文件生成
重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 前言 有时候,业务系统要求提供一个PDF文件导出的功能,这时候我们就需要将数据库的对应数据查询出来,然后生成 ...
- java 使用itext 导出pdf 控制图片的大小
在使用itext 导出pdf 的过程中,可能会遇到这样的需求,就是导出文字加图片.使用我们前面写的程序,确实是可以导出图片,如果针对于类似简历的需求,图片填充单元格,会满足效果,如下图所示: 但在实际 ...
- Linux下Java Font 中文字体不显示
为什么80%的码农都做不了架构师?>>> linux系统中jre不支持字体解决方法 Linux下Java中文字体不显示 https://blog.csdn.net/kenera ...
- IText导出PDF添加图片,解决中文问题
利用IText导出PDF: 使用.ftl模板引入图片不显示,不报错,但是它找不到图片, .separator {margin: 15px;height: 16px;text-align: center ...
- 关于RDLC使用导出PDF文件时,中文乱码解决方案
MicrosftReportViewer控件导出乱码,主要需要设置的是RDCL文件: 关于使用RDLC导出PDF文件时,中文出现乱码现象,本文进行了解决: 其实很简单. 本人平台情况VS2008 英文 ...
最新文章
- 易语言录入数据到access里重复提示_一招搞定:excel数据共享协同
- CentOS中安装的Gitlab忘记管理员密码怎样重置密码
- Vue团队核心成员开发的39行小工具 install-pkg 安装包,值得一学!
- 【转】RNN、LSTM、Transformer、BERT简介与区别
- 部署flas到服务器:No module named flask
- const C++ 用法总结
- nginx每日日志切割脚本
- 如果Mac在播放音乐时遇到问题,没有声音或无法调整音量,该怎么办呢?
- C++基础语法-02-运算符重载
- mysql8.0驱动包下载_Java JDBC 驱动包下载,MySQL 8及以上适用, mysql-connector-java-8.0.22.jar 官方版。...
- 计算机麦克地址,WO Mic Client
- Android Studio 调试的时候出现 Access denied finding property “ro.serialno“
- android zooming bitmap
- unityshader 晶格化消散
- 浏览器无法访问部分网站
- opensips-02
- ocx插件: AniGIF.ocx安装
- 设置IE浏览器文本模式为IE8或IE7
- 【5G核心网】5G概念以及名词缩写解释
- python 课程体系
热门文章
- Mac之zip unzip 命令(压缩)
- PX4模块设计之三十三:Sensors模块
- Netty中NioEventLoop的两个逻辑点分析
- matlab给数组等间距赋值从5到15,matlab等间隔连续赋值
- 学习模拟实现strlen strcmp strcpy strcat strstr等库函数
- MSP430FR6989系列教程之LCD
- 国庆快乐!上班中...
- 计算机控制系统中典型形式,四川大学14春《计算机控制系统2380》14春在线作业1、2...
- angular项目中的增删改功能
- 解决英伟达Jetson平台使用Python时的出现“Illegal instruction(cpre dumped)”错误