Xpdf 中文字体解决方案(TTF字库) - 图文教程_zhichaosong的博客-程序员秘密

技术标签: xpdf  Windows  

Xpdf是用来处理和转换 PDF 的利器。项目中需要将 PDF 转换为图片,但是发现有的 PDF 文档转换缺失字体,必须要使用 ttf格式的字体才行,直接安装到系统不管用,于是到官方文档才发现还需要配置字库,根据说明配置好后问题迎刃而解。

  • 官网地址:http://www.xpdfreader.com/

一、报错提示

以 pdftoppm 为例,再将 PDF 转换 为 ppm 格式图片的时候会提示缺少两个字体:Symbol、ZapfDingbats
在这里插入图片描述
报错信息如下:

Syntax Error: Couldn't find a font for 'FZDBSJW--GB1-0'

其他格式的转换工具也存在同样的问题
在这里插入图片描述
搜索得知该字体为:方正大标宋简体,下载安装到系统依然不生效
在这里插入图片描述

二、官网解决方案

1. 官网配置说明

① 在官网寻找 ttf格式字体的配置方式,发现里面 有个 xpdfrc配置文件,里面有配置字体的方式,意思是建一个文件夹存放 ttf字体,然后名字必须和报错的信息一致
http://www.xpdfreader.com/xpdfrc-man.html
在这里插入图片描述
② 于是我也新建了个名为 xpdfrc的文件,注意不要有后缀,然后把字体路径配置好
在这里插入图片描述
在这里插入图片描述
③ 重新运行发现不报错了
在这里插入图片描述

三、xpdfrc 完整配置

大家在运行目录下建个 xpdfrc 文件,然后复制这段配置,再改好路径即可,后面我给出下载地址

fontFile Symbol                ./xpdf-t1fonts/s050000l.pfb
fontFile ZapfDingbats          ./xpdf-t1fonts/d050000l.pfb

#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode	Adobe-GB1	./chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap	ISO-2022-CN	./chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap	EUC-CN		./xpdf/chinese-simplified/EUC-CN.unicodeMap
unicodeMap	GBK		./chinese-simplified/GBK.unicodeMap
cMapDir		Adobe-GB1	./chinese-simplified/CMap
toUnicodeDir			./chinese-simplified/CMap
#fontFileCC	Adobe-GB1	/usr/..../NotoSansCJKsc-Regular.otf
#----- end Chinese Simplified support package

fontDir ./ttf
#displayNamedCIDFontTT FZDBSJW--GB1-0 ./chinese-simplified/fdbsjw.TTF

五、配置示例下载

① 压缩包附带语言包、语言包配置文件、官网下载的原文件,解压后可直接运行
在这里插入图片描述
② 下载地址
https://download.csdn.net/download/zhichaosong/11527883

相关链接:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhichaosong/article/details/103976096

智能推荐

修改openstack默认安全组规则_openstack 安全组规则_昆仑云王工的博客-程序员秘密

因为项目有一个新的需求,需要修改openstack中每次新建租户后的默认安全组规则。首先先来分析一下:我用的openstack版本为queens。每次新建租户后本来是没有安全组的,当使用新租户第一次访问dashboard的安全组列表或者调用API时,openstack会自动的为该租户创建一个default安全组,有4条规则。如图大意就是1)允许使用该安全组的虚拟机向外部发送一切...

Matlab信号提取、频谱分析、滤波、阈值设定、寻找极值点_fft能量阈值怎么设置_真理的追求者的博客-程序员秘密

转:http://blog.csdn.net/han____shuai/article/details/50700882题目Heart Beat Period Detection背景交代In clinic, it is frequently required to detect heart rate. Theheart rate is usually computed from

html实现向上轮播,js实现文字向上轮播功能(看到的是单条记录)_煌煌不安的博客-程序员秘密

Document*{margin:0;padding:0;}.lunbo{position: relative;width: 600px;height: 50px;border:1px solid red;overflow: hidden;}ul{position:absolute;left: 0;top:0;width: 600px;height: auto;}ul li{width: 600...

ubuntu安装yii2.0_ubuntu配置运行yii2 advance项目_守护大白菜的博客-程序员秘密

Yii2.0要求Composer必须安装 composer asset 插件。 这个插件使得Composer可以兼容实现NPM和BOWER包管理器的功能。 NPM 和 BOWER 主要用于前端资源(如js库等)的管理。1.安装Composersudo curl -s http://getcomposer.org/installer | php# 对于已经安装过Compose

现代软件工程个人作业——词频统计(字符数、行数、单词数、高频单词和词组)..._weixin_30394669的博客-程序员秘密

现代软件工程课的第一次个人作业博主做的相当差劲,让我清楚地意识到自己与他人的差距。通过这篇博客博主将展示自己是如何走上事倍功半的歧路,认真分析错误原因,希望大家不要重蹈我的覆辙。首先让我们来看一下作业要求:详细要求在邓宏平老师的博客:第一次个人作业——词频统计 这次词频统计的主要功能有:1.统计文件的字符数(只需要统计Ascii码,汉字...

systemverilog语法(八)_南国之邱的博客-程序员秘密

十九、面向对象编程的高级技巧 继承:允许从一个现存的类得到一个新的类并共享其变量和子程序。原始类被称为基类或者超类,而新类因为扩展了基类的功能,被称为扩展类。 OOP真正强大的地方在于它可以使你继承现有类。 1、例:事务基类 扩展类: 将类中的子程序定义成虚拟的,这样 它就可以在扩展类中重新定义,这一点适用于所有的任务和函数,除了new函数。 OOP中类的变量称为属性,而任务

随便推点

未能加载程序集System.EnterpriseServices.dll_weixin_34409357的博客-程序员秘密

提示未能加载文件或程序集System.EnterpriseServices未能加载文件或程序集“System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。 解决方法: 方法一: C:\WINDOWS\Microsoft.NET\Fr...

聚宽 get_price 多个股票数据_量化交易入门教程,获取典型常用数据_weixin_39555951的博客-程序员秘密

获取典型常用数据摘要聚宽数据获取指数成分股获取股票行情数据获取股票财务数据自测与自学聚宽数据在聚宽数据这个页面可以看到聚宽平台集成好的各大类数据,如下图,点击可以查看详情与用法。但实际上可能有些数据要在API文档里才比较容易能找到,比如龙虎榜数据等。这时用ctrl+f进行网页搜索可以快速搜索需要的数据。接下来会介绍几种常用数据的取用方法,这些取用方法比较典型,掌握后能覆盖基本的数据需求以及较容易的...

Mysql的DATE_FORMAT()进行日期格式转换_date format 数字改日期_baiyu_ko的博客-程序员秘密

碰到一个MYSQL的问题,表logstatb中moment字段的内容是"年-月-日 时:分:秒",需要查询匹配“年月日”或“时:分:秒”即可的数据条目,这个时候就可以通过下面的SQL语句实现:select * from logstatb where date_format(moment,'%Y%m%d')= '20080227'(匹配“年月日”)select * from logs

pytorch——torch.backends.cudnn.benchmark = True_萌新调包员的博客-程序员秘密

问题:torch.backends.cudnn.benchmark = True在利用pytorch进行网络训练时总会见到这行代码,这句有什么用呢?查了一些资料才知道是个非必须项,那加了有什么用呢?有没有什么准则呢?用途:大部分情况下,设置这个 flag 可以让内置的 cuDNN 的 auto-tuner 自动寻找最适合当前配置的高效算法,来达到优化运行效率的问题。准则:...

java后端如何主动发数据到前端_前端html向后端java传递数据的几种方式(暂时使用到)..._weixin_39869432的博客-程序员秘密

注:data : {},类型可按照具体场景 具体定义 不仅仅只有下面的传递方式1 删除à前段传递方式为dataType : "JSON"、 type : "DELETE"前段:$.ajax({url : interfaces.deleteAccessRule+id,type : "DELETE",data : {},dataType : "JSON",success : function(resu...

龙芯loongson1:buildroot-2016.02制作龙芯1mips32交叉工具链_龙芯buildroot制作工具链_Light_It的博客-程序员秘密

下载:  https://buildroot.org/download.html  最新版本是 buildroot-2016.02.tar.bz2  上传的资源:https://download.csdn.net/download/damifeng/10824058编译:  cd /home/loongson/tools/buildroot/  tar -xvf buildroot...

推荐文章

热门文章

相关标签