Linux下Apose由Word转PDF后乱码问题解决

Linux下Apose由Word转PDF后乱码问题解决

文章目录

  • Linux下Apose由Word转PDF后乱码问题解决
  • 1. 问题描述
  • 2. 问题原因
  • 3. 解决方法
    • 1. 拷贝Windows中的字体库
    • 2. 在Linux中安装字体库
  • 4. 常见问题
      • 1. Ubuntu环境下使用如下命令安装:
      • 2. Centos环境下使用如下命令安装

1. 问题描述

在Ubuntu与Centos中使用aspose插件由word转换为PDF时中文显示乱码,但是在windows中转换后PDF有中文时显示正常

2. 问题原因

Ubuntu或Centos中缺少对应的中文字体库导致中文出现乱码

3. 解决方法

1. 拷贝Windows中的字体库

将Windows的字体库拷贝到Linux中,这里以win10字体库为例进行安装

  1. 将Windows10 系统中的 “C:\Windows\Fonts”中的Fonts目录拷贝(大约540MB)一份上传到Linux系统中
  2. 上传到Linux的目录如“/opt/winFonts”

2. 在Linux中安装字体库

  • 查看Linux中的所有字体
# 查看Linux中的所有字体库
fc-list
# 查看Linux中的中文字体库
fc-list :lang=zh
  • 拷贝与安装字体库
# 1. 在/usr/share/fonts新建 winFonts 目录
cd /usr/share/fonts
sudo mkdir winFonts
# 2. 拷贝从Windows上传的字体库到  /usr/share/fonts/winFonts
sudo cp /opt/winFonts/* /usr/share/fonts/winFonts
# 3.执行安装
cd /usr/share/fonts
# 然后执行以下命令更新字体缓存。
sudo mkfontscale
sudo mkfontdir 
sudo fc-cache -fv

在centos7中执行fc-cache -fv 看到下面内容说明字体安装成功

[root@localhost fonts]# fc-cache -fv
/usr/share/fonts: 正在生成缓存,新增缓存内容:0 个字体,7 个目录
/usr/share/fonts/default: 正在生成缓存,新增缓存内容:0 个字体,2 个目录
/usr/share/fonts/default/Type1: 正在生成缓存,新增缓存内容:35 个字体,0 个目录
/usr/share/fonts/default/ghostscript: 正在生成缓存,新增缓存内容:4 个字体,0 个目录
/usr/share/fonts/dejavu: 正在生成缓存,新增缓存内容:9 个字体,0 个目录
/usr/share/fonts/fontawesome: 正在生成缓存,新增缓存内容:2 个字体,0 个目录
/usr/share/fonts/liberation: 正在生成缓存,新增缓存内容:8 个字体,0 个目录
/usr/share/fonts/open-sans: 正在生成缓存,新增缓存内容:10 个字体,0 个目录
/usr/share/fonts/overpass: 正在生成缓存,新增缓存内容:8 个字体,0 个目录
/usr/share/fonts/winFonts: 正在生成缓存,新增缓存内容:1045 个字体,0 个目录
/usr/share/X11/fonts/Type1: 正在生成缓存,新增缓存内容:13 个字体,0 个目录
/usr/share/X11/fonts/TTF: 跳过,无此目录
/usr/local/share/fonts: 跳过,无此目录
/root/.local/share/fonts: 跳过,无此目录
/root/.fonts: 跳过,无此目录
/usr/share/fonts/default: 跳过,探测到循环目录
/usr/share/fonts/dejavu: 跳过,探测到循环目录
/usr/share/fonts/fontawesome: 跳过,探测到循环目录
/usr/share/fonts/liberation: 跳过,探测到循环目录
/usr/share/fonts/open-sans: 跳过,探测到循环目录
/usr/share/fonts/overpass: 跳过,探测到循环目录
/usr/share/fonts/winFonts: 跳过,探测到循环目录
/usr/share/fonts/default/Type1: 跳过,探测到循环目录
/usr/share/fonts/default/ghostscript: 跳过,探测到循环目录
/usr/lib/fontconfig/cache: cleaning cache directory
/root/.cache/fontconfig: not cleaning non-existent cache directory
/root/.fontconfig: not cleaning non-existent cache directory
/usr/bin/fc-cache-64: 缓存生成成功
[root@localhost fonts]# source /etc/profile
  • 执行下面命令让字体库生效
source /etc/profile
  • 如果安装失败,可以考虑修改字体权限
chmod 755 *.ttf
  • 注意:字体安装后必须重启Linux上的Tomcat或Spring boot或其他应用,否则还是不生效

4. 常见问题

执行 sudo mkfontscale 提示 mkfontscale: command not found

1. Ubuntu环境下使用如下命令安装:

# 使mkfontscale和mkfontdir命令正常运行
sudo apt-get install ttf-mscorefonts-installer
# 使fc-cache命令正常运行
sudo apt-get install fontconfig

在Ubuntu无法联网的情况下,安装rpm命令安装包:因为有依赖关系,顺序如下

1.libfontenc-1.1.3-3.amzn2.0.2.x86_64.rpm
2.libXfont-1.5.2-1.amzn2.0.2.x86_64.rpm
3.xorg-x11-font-utils-7.5-20.amzn2.0.2.x86_64.rpm
4.fontpackages-filesystem-1.44-8.amzn2.noarch.rpm
5.stix-fonts-1.1.0-5.amzn2.noarch.rpm
6.fontconfig-2.10.95-11.amzn2.0.2.x86_64.rpm

2. Centos环境下使用如下命令安装

# 使mkfontscale和mkfontdir命令正常运行
yum install mkfontscale 
# 使fc-cache命令正常运行。如果提示 fc-cache: command not found
yum install fontconfig

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

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

相关文章

介绍一下浏览器的缓存(Expires, Cache-Control等)

浏览器的缓存是一种机制,用于存储网页和资源的副本,以便在之后的请求中能够更快地获取这些资源,而不是每次都从服务器重新下载。这不仅可以提高网页的加载速度,还可以减少服务器的负载和带宽的使用。 在HTTP协议中,有…

272.【华为OD机试真题】文件缓存系统(JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-文件缓存系统二.解题思路三.题解代码Python题解…

PCIe P2P DMA全景解读

温馨提醒:本文主要分为5个部分,总计4842字,需要时间较长,建议先收藏! P2P DMA简介 P2P DMA软硬件支持 CXL P2P DMA原理差异 P2P DMA应用场景 P2P DMA技术挑战 一、P2P DMA简介 P2P DMA(Peer-to-Peer…

发现了一个超赞的办公利器!ONLYOFFICE 文档 8.0 强势登场!

迎接 ONLYOFFICE 文档 v8.0发布后的全新升级!现在,适用于 Linux、Windows 和 macOS 的免费 ONLYOFFICE 桌面应用程序更加强大!全新的 RTL 界面、本地界面主题、与 Moodle 的集成等实用功能,让你的办公体验更加出色!全新…

挑战30天学完Python:Day19 文件处理

📘 Day 19 🎉 本系列为Python基础学习,原稿来源于 30-Days-Of-Python 英文项目,大奇主要是对其本地化翻译、逐条验证和补充,想通过30天完成正儿八经的系统化实践。此系列适合零基础同学,或仅了解Python一点…

PyTorch中保存模型的两种方式

文章目录 一、状态字典(State Dictionary)二、序列化模型(Serialized Model)三、示例代码 一、状态字典(State Dictionary) 这种保存形式将模型的参数保存为一个字典,其中包含了所有模型的权重…

Flink中的双流Join

1. Flink中双流Join介绍 Flink版本Join支持类型Join API1.4innerTable/SQL1.5inner,left,right,fullTable/SQL1.6inner,left,right,fullTable/SQL/DataStream Join大体分为两种:Window Join 和 Interval Join 两种。 Window Join又可以根据Window的类型细分为3种…

alist修改密码(docker版)

rootarmbian:~# docker exec -it [docker名称] ./alist admin set abcd123456 INFO[2024-02-20 11:06:29] reading config file: data/config.json INFO[2024-02-20 11:06:29] load config from env with prefix: ALIST_ INFO[2024-02-20 11:06:29] init logrus..…

Redis篇之缓存雪崩、击穿、穿透详解

学习材料:https://xiaolincoding.com/redis/cluster/cache_problem.html 缓存雪崩 什么是缓存雪崩 在面对业务量较大的查询场景时,会把数据库中的数据缓存至redis中,避免大量的读写请求同时访问mysql客户端导致系统崩溃。这种情况下&#x…

链表之“无头单向非循环链表”

目录 ​编辑 1.顺序表的问题及思考 2.链表 2.1链表的概念及结构 2.2无头单向非循环链表的实现 1.创建结构体 2.单链表打印 3.动态申请一个节点 3.单链表尾插 4.单链表头插 5.单链表尾删 6.单链表头删 7.单链表查找 8.单链表在pos位置之前插入x 9.单链表删除pos位…

Android引入aar包的方法

问题描述: 网上参考了许多引入aar包的方法是: 第一步:在build.gradle中的android{}外层添加如下代码 repositories {flatDir {dirs libs} }第二步:在dependencies中添加 implementation(name:名称, ext:aar)但是上述方法中的fl…

85、字符串操作的优化

上一节介绍了在模型的推理优化过程中,动态内存申请会带来额外的性能损失。 Python 语言在性能上之所以没有c++高效,有一部分原因就在于Python语言将内存的动态管理过程给封装起来了,我们作为 Python 语言的使用者是看不到这个过程的。 这一点有点类似于 c++ 标准库中的一些…

探索Promise异步模式抽象的变体——Promise.race篇

如果阅读有疑问的话,欢迎评论或私信!! 本人会很热心的阐述自己的想法!谢谢!!! 文章目录 前言初识Promise.race探索Promise.raceAPI实例 前言 在本栏前一篇Promise.all中,我们可以实…

谷歌最新黑科技:Gemini 1.5携100万Token挑战AI多模态极限

最近科技圈再次迎来震撼弹!除了火爆全球的openAI Sora文生视频模型外,谷歌发布了其大模型矩阵的最新成员——Gemini 1.5,一举将上下文窗口长度扩展至惊人的100万个tokens。这不仅仅是一个简单的数字增加,而是一次划时代的飞跃&…

万界星空科技电子机电行业MES系统,2000元/年起

电子行业在生产管理上具有典型的离散制造特点,采用多品种、多批量或单件的生产组织方式。产品升级换代迅速,生命周期短,变更频繁,版本控制复杂。 同时产品的种类较多,非标准产品多,加工工序复杂&#xff0…

三种标注格式VOC、COCO、YOLO及其转换

最近在做基于深度学习的目标检测,数据标注软件选择的LabelImg。 常用的几种标注格式及目录安排 一、VOC(标注文件xml结尾) 首先看一下VOC格式的分布: 在VOC这些文件夹中,我们主要用到: ① JPEGImages文件夹:图片 ②…

Dapp的优势与前景,具唯一性公开可追溯

​小编介绍:10年专注商业模式设计及软件开发,擅长企业生态商业模式,商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地;扶持10余个电商平台做到营收过千万,数百个平台达到百万会员,欢迎咨询。 在…

B3768 [语言月赛202305] 独行

传送门: https://www.luogu.com.cn/problem/B3768 直接手推模拟,找规律,照着遍就行。 以下是找规律部分: int sq, sh, sw, nt;1.sq v0 * T1;if (sq > s) {nt s / v0;break;}sh v1 * t1;sw sq - sh;sw max (sw, 0);nt …

216699-36-4,6-Rhodamine X NHS ester,具有良好的脂溶性

117491-83-5,1890922-83-4,216699-36-4,6-Rhodamine X NHS ester,ROX SE, 6-isomer,6-ROX NHS 活化酯 您好,欢迎来到新研之家 文章关键词:117491-83-5,1890922-83-4,21…

【知识整理】Git Commit Message 规范

一. 概述 前面咱们整理过 Code Review 一文,提到了 Review 的重要性,已经同过gitlab进行CodeReview 的方式,那么本文详细说明一下对CodeReivew非常重要的Git Commit Message 规范。 我们在每次提交代码时,都需要编写 Commit Mes…