Xpdf 阅读器源码编译后查看文件中文乱码问题解决

news2024/11/24 16:17:05

经查阅,是由于缺少中文字体包:

第一步:下载所需要的字体包

  1. 下载https://dl.xpdfreader.com/xpdf-t1fonts.tar.gz 包含
  2. 下载中文字体包(非嵌入字体)

http://ftp.gnu.org/gnu/non-gnu/chinese-fonts-truetype/gkai00mp.ttf.gz

http://ftp.gnu.org/gnu/non-gnu/chinese-fonts-truetype/gbsn00lp.ttf.gz

完整包含中文字体文件如下:

 

第二步:修改xpdfrc文件

1、打开xpdfrc,修改路径添加\”,这样时为了杜绝类似“C:\Program Files (x86)”包含中文的路径。

2、再xpdfrc中添加gkai00mp.ttf 和 gbsn00lp.ttf 。Xpdfrc中的内容如下:

#----- begin Chinese Simplified support package (2011-sep-02)

cidToUnicode Adobe-GB1 "/usr/local/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode"

unicodeMap ISO-2022-CN "/usr/local/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap"

unicodeMap EUC-CN "/usr/local/share/xpdf/chinese-simplified/EUC-CN.unicodeMap"

unicodeMap GBK "/usr/local/share/xpdf/chinese-simplified/GBK.unicodeMap"

cMapDir Adobe-GB1 "/usr/local/share/xpdf/chinese-simplified/CMap"

toUnicodeDir "/usr/local/share/xpdf/chinese-simplified/CMap"

fontFileCC Adobe-GB1 "/usr/local/share/xpdf/chinese-simplified/gkai00mp.ttf"

fontFileCC Adobe-GB1 "/usr/local/share/xpdf/chinese-simplified/gbsn00lp.ttf"

#----- end Chinese Simplified support package

第三步:查阅XpdfWidget Class Reference说明,需要通过setConfig设置配置。

1、将ChineseSimplified目录同执行程序放在同一目录下。

2、在XpdfWidget类初始化时加载,并将xpdfrc文件

中的 /usr/local/share/xpdf/chinese-simplified 替换为程序当前运行目录,以获取正确路径。(这里简单测试,暂时这样处理,后续可根据实际需求优化)相关代码如下:

QDir chinessDir = QApplication::applicationDirPath() + "/ChineseSimplified/";
  if(chinessDir.exists())
  {
      QFile file(chinessDir.path() + "/xpdfrc");
      if(file.exists())
      {
          // 按行读取xpdfrc文件的内容
          QStringList cmdlist;
          if (file.open(QIODevice::ReadOnly | QIODevice::Text))
          {
              while (!file.atEnd())
              {
                  QByteArray line = file.readLine();
                  QString str(line);
                  cmdlist << str;
              }
              file.close();
          }

          // 循环执行命令行配置 setconfig
          foreach(auto var, cmdlist)
          {
              QString cmd = var.replace("/usr/local/share/xpdf/chinese-simplified", chinessDir.path());
              setConfig(cmd); // 调用的接口
          }
      }
      else
          qDebug() << "Warning[Chinese]: xpdfrc not exist![" << file.fileName() << "]";
  }
  else
      qDebug() << "Warning[Chinese]: chinessDir not exist![" << chinessDir.path() << "]";

下载 ChineseSimplified

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/596677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytorch-简单回归问题-手写数字识别

pytorch-简单回归问题-手写数字识别 线性回归添加噪声简单例子分类问题引入-手写数字识别数据集 训练推导手写数字识别1加载数据集编写网络训练网络计算正确率 线性回归添加噪声 使用均方差损失函数来衡量损失 简单例子 通过最小化损失函数&#xff0c;求解出参数w b 下图表示…

封装的函数停发/启动CAN报文,以及报文接收检测,高可用

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe,博客目录大全,点击跳转👉 📘前言 🍅 在测试过程中,我们可能需要可控的停/发某些报文,今天博主给…

chatgpt赋能python:Python主页面的SEO分析及优化建议

Python主页面的SEO分析及优化建议 Python是一种高级编程语言&#xff0c;广泛应用于人工智能、数据分析、Web开发等领域。Python官方网站是Python社区的一个重要门户&#xff0c;为全球学习Python的开发者提供了全面、权威、可靠的信息。在这篇文章中&#xff0c;我们将分析Py…

Text to image论文精读SeedSelect: 使用SeedSelect微调扩散模型It’s all about where you start

随着文本到图像扩散模型的发展&#xff0c;很多模型已经可以合成各种新的概念和场景。然而&#xff0c;它们仍然难以生成结构化、不常见的概念、组合图像。今年4月巴伊兰大学和OriginAI发表《It’s all about where you start: Text-to-image generation with seed selection》…

软件外包开发项目原型图工具

项目原型图工具有非常重要的作用&#xff0c;尤其是在APP项目开发中&#xff0c;对于整体需求的表达是必不可少的工具。相比于传统的文档需求&#xff0c;图形文字的表达可以更清楚的表达需求&#xff0c;让客户清楚的明白软件功能有哪些&#xff0c;最后的界面是怎样的&#x…

微信海量数据查询如何从1000ms降到100ms?

&#x1f449;腾小云导读 微信的多维指标监控平台&#xff0c;具备自定义维度、指标的监控能力&#xff0c;主要服务于用户自定义监控。作为框架级监控的补充&#xff0c;它承载着聚合前 45亿/min、4万亿/天的数据量。当前&#xff0c;针对数据层的查询请求也达到了峰值 40万/m…

RL - 强化学习 上置信界算法 (UCB) 和 汤普森采样算法 (TS)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/130983835 上置信界算法和汤普森采样算法是两种解决多臂老虎机问题的经典方法。多臂老虎机问题是一种探索与利用的平衡问题&#xff0c;…

Java easypoi 导出excel 并合并相关列

在项目开发中经常会使用到合并列&#xff0c;格式如下&#xff1a; 1.引入easypoi <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId></dependency><dependency><groupId>cn.aftertur…

设计模式详解之策略模式

作者&#xff1a;刘文慧 策略模式是一种应用广泛的行为型模式&#xff0c;核心思想是对算法进行封装&#xff0c;委派给不同对象来管理&#xff0c;本文将着眼于策略模式进行分享。 一、概述 我们在进行软件开发时要想实现可维护、可扩展&#xff0c;就需要尽量复用代码&#x…

chatgpt赋能python:Python什么情况下用类

Python什么情况下用类 在Python编程中&#xff0c;类是一种重要的数据结构&#xff0c;它是面向对象编程的核心。类可定义数据类型&#xff0c;并把数据与操作数据的函数组合在一起。因此&#xff0c;通过使用类&#xff0c;我们可以将数据、函数和其他方法组合在一起&#xf…

OLAP系列:四、clickhouse分布式表使用指南

一、背景 ClickHouse中最强大的表引擎当属MergeTree&#xff08;合并树&#xff09;引擎及该系列&#xff08;*MergeTree&#xff09;中的其他引擎&#xff0c;支持索引和分区&#xff0c;地位可以相当于innodb之于Mysql。 而且基于MergeTree&#xff0c;还衍生出了很多小弟&a…

【量化分析】绘制指标线EWM和MACD(1)

目录 一、说明 二、使用mplfinance的前提 2.1 mplfinance生态圈 2.1 安装mplfinance 三、mplfinance绘图 3.1 单变量图 3.2 将用户自己生成的曲线添加到 mplfinance plot() 四、显示EWM和MACD 一、说明 在做量化分析的时候&#xff0c;需要有能力计算种种曲线&#xff…

ShowMeBug 持续升级,提供高信效度支撑的技术招聘方案

去年年底&#xff0c;全新升级版的 ShowMeBug ——一款支持实战编程的技术能力评估平台&#xff0c;首次揭开了它神秘的面纱。 而近日&#xff0c;ShowMeBug 再次迎来一系列产品更新&#xff0c;它将以全新的面貌&#xff0c;提供高信效度支撑的技术招聘方案&#xff0c;持续助…

chatgpt赋能python:Python人脸登录:这项技术将颠覆传统的登录方式

Python人脸登录&#xff1a;这项技术将颠覆传统的登录方式 简介 在互联网时代&#xff0c;登录是每个人使用网站或软件的第一步&#xff0c;但是传统的用户名和密码登录已经不能满足用户的需求。不断的爆出各种账户泄露事件、密码猜测和密码被盗等问题&#xff0c;导致用户的…

cleanmymac要不要下载装机?好不好用

当我们收到一台崭新的mac电脑&#xff0c;第一步肯定是找到一款帮助我们管理电脑运行的“电脑管家”&#xff0c;监控内存运行、智能清理系统垃圾、清理Mac大文件旧文件、消除恶意软件、快速卸载更新软件、隐私保护、监控系统运行状况等。基本在上mac电脑防护一款CleanMyMac就够…

生成程序片段(程序依赖图PDG)

生成程序片段(程序依赖图PDG) 生成程序片段 标准方法是&#xff1a; 基于依赖性分析的切片。 使用程序依赖图表示依赖。 从中生成切片。 我们将专注于这种方法。但是&#xff0c;还有其他选择。 程序依赖图 The Program Dependence Graph (PDG) 表示数据和控制依赖项&#xf…

Servlet的常用Api—HttpServletResponse

Servlet的常用Api—HttpServletResponse &#x1f50e;核心方法setContentType && setCharacterEncodingsendRedirect关于Keep-Alive关于状态码 && Body &#x1f50e;结尾 &#x1f50e;核心方法 方法描述(void) setStatus(int sc)为该响应设置状态码(void) s…

2023年4月和5月随笔

1. 回头看 为了不耽误学系列更新&#xff0c;4月随笔合并到5月。 日更坚持了151天&#xff0c;精读完《SQL进阶教程》&#xff0c;学系统集成项目管理工程师&#xff08;中项&#xff09;系列更新完成。 4月和5月两月码字114991字&#xff0c;日均码字数1885字&#xff0c;累…

python的AutoGui库(1)获取鼠标实时位置

1.安装AutoGui库,与库的导入 PyAutoGUI是一个纯Python的GUI自动化工具&#xff0c;其目的是可以用程序自动控制鼠标和键盘操作&#xff0c;多平台支持&#xff08;Windows&#xff0c;OS X&#xff0c;Linux&#xff09;。可以用pip安装&#xff0c;Github上有源码。 使用命令…

Ceph应用

//存储类型 块存储 一对一&#xff0c;只能被一个主机挂载使用&#xff0c;数据以块为单位进行存储&#xff0c;典型代表: 硬盘 文件存储 一对多&#xff0c;能被多个主机同时挂载使用&#xff0c;数据以文件的形式存储的(元数据和实际数据是分开存储的)&#xff0c;并且有…