pdf 输出中文的三种字体选择方式:

1、使用iTextAsian中的字体,需要下载iTextAsian.jar包或者是引入下面的依赖:

<dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version>
</dependency>

设置中文字体的方法是:

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

通过这种方式设置字体的时候,如果字符串中包含一部分英文串和一部分中文串的时候会造成英文串中的部分英文字母之间存在一定距离的间隙,有一点影响用户的体验。如下图所示:

2、使用Windows系统字体(TrueType),设置中文字体的方法是:

BaseFont bfChinese = BaseFont.createFont("C:/WINDOWS/Fonts/SIMYOU.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);

通过这种方式设置字体的时候,程序在Windows系统中运行的时,此方法生效且中英文字符串都可以使用这个方法设置字体样式,此方法设置的字体样式用户体验比较好。缺点是把项目部署到Linux环境中就回报错,打不开你下载的PDF文件;解决方案:https://blog.csdn.net/atpalain_csdn/article/details/50801639(此使用以后再细谈)

3、使用资源字体(ClassPath),需要和实际资源绑定,在实际项目中可以将一些字体库和项目打包在一起。设置中文字体的方法是:

BaseFont.createFont("/SIMYOU.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);

此方法的第一个参数是:字体库或字体资源路径,其它参数固定不变。

pdf 输出中文的三种字体选择方式相关推荐

  1. iText输出中文的三种字体选择方式

    1.使用iTextAsian.jar中的字体     BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",Ba ...

  2. 转载:iText输出中文的三种字体选择方式

    本文转载 http://blog.donews.com/ooFrank/archive/2006/04/30/851650.aspx 1.使用iTextAsian.jar中的字体 Java代码   B ...

  3. 如何将PDF转换为PPT?三种方法让你操作无忧!

    在我们日常工作中,使用PPT演示工作内容是常见的需求.熟练制作各种类型的PPT是每个专业人士必备的技能.但有时会遇到PDF格式的文件需要转换为PPT才能使用.这两种文件格式在日常工作中广泛使用,每个人 ...

  4. html fontfamily ios,小谈中文环境下中文排版的font-family 字体选择

    在开发Mindia 主题的时候,为了弄出相对好看的中文排版,特意补习了下中文排版的font-family 字体选择的相关资料.以下就从自己的角度说下自己的不算得上是收获的收获吧. 众所周知,由于Win ...

  5. Spark支持三种分布式部署方式

    目前Apache Spark支持三种分布式部署方式,分别是standalone.spark on mesos和 spark on YARN,其中,第一种类似于MapReduce 1.0所采用的模式,内 ...

  6. Mongodb的三种集群方式的搭建

    Mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式.关于Mongodb的特点,这里就不多介绍了,大家可以去看看官方说明:http://docs.mong ...

  7. 了解mysql的三种不同安装方式的区别

    学习目的:了解mysql的三种不同安装方式的区别 学习内容: mysql 的安装有三种:分别是源码安装.二进制安装.rpm安装. 源码安装的优势:linux操作系统开放源代码,因此在其上面安装的软件大 ...

  8. lvs的调度算法有几种_LVS:三种负载均衡方式比较

    1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很 ...

  9. Apache Spark探秘:三种分布式部署方式比较

    2019独角兽企业重金招聘Python工程师标准>>> 目前Apache Spark支持三种分布式部署方式,分别是standalone.spark on mesos和 spark o ...

最新文章

  1. dumpbin发现没有入口函数_详解VS2019 dumpbin查看DLL的导出函数
  2. python文件粉碎传输_python使用stuck 实现scoket编程实现文件传输
  3. PHP - 如何在函数内访问另一个文件中的变量
  4. webpack4.x多页面零配置项目模板
  5. 通过Windows API 创建窗口的过程理解windows消息机制
  6. java调用c的sdk_如何使用java调用c++的sdk动态库 sdk已存在 java方法怎么写? 怎么调用??在线等!!!...
  7. 坚持自主创新,凌波微步完成数千万A轮融资,加速半导体产业
  8. 搭建IBM z/OS 1.9(ADCD 1.9)
  9. 一文读懂全球CTRM市场的前世今生
  10. Jmeter高阶学习,运用NotePad++编写工程,随意复制多个工程到同一个工程
  11. Python 之有趣的跑马灯
  12. AR law : Privacy
  13. Python游戏概率保底算法PRD的实现
  14. 最新狂雨小说CmsV1.5.2漂亮的小说网站源码
  15. Node 简介、模块、模板引擎、NPM、文件操作、缓冲区、文件流、网络操作、Express框架
  16. 汇正财经推荐股票靠谱吗?说说自己的经历
  17. python二元一次方程组用鸡兔同笼的思路来写编程_python二元一次方程组用鸡兔同笼的思路来写编程_《应用二元一次方程组——鸡兔同笼》......
  18. Gulp——JS模块化说明视频-张晓飞-专题视频课程
  19. 螺钉式接线端子 KF128/ DG128/ MG128
  20. U盘容量由于刻录系统造成容量减少的解决方法

热门文章

  1. 爱搞事情:我的黑苹果日记之雷坑真如铁
  2. 40.qt quick- 高仿微信实现局域网聊天V4版本(支持gif动图表情包、消息聊天、拖动缩放窗口、支持Linux编译)...
  3. 什么是同步?什么是异步?
  4. 该页面仅以HTML格式保存_轻松实现页面自动刷新功能,提高前端开发效率
  5. 集成腾讯bugly的热修复功能sdk步骤
  6. Endnote中的参考文献是网页,应该如何设置
  7. insert oracle速度,[Oracle] Insert into速度测试nologging+parallel
  8. vue中echarts实现水球动画图
  9. CSS 多行文字溢出显示省略号效果
  10. 情态动词 can/could