Linux之中文字体安装

news2024/11/18 13:27:17

一、需求说明

  客户系统部署要求使用指定字体,该字体在linux服务器上没有,导致系统处理相关上传文档的时候显示乱码,所以我们需要在linux服务器上安装指定字体。博主实验环境:

  • 操作系统:centos7.6
  • 安装window环境下的宋体等中文字体

二、字体格式简介

  常见的字体格式有ttf,ttc,fon,pfb,afm等,其中fon是window系统换的格式,linux环境下不支持,pfb和afm是linux系统默认安装的字体。

  • ttf格式
    TTF(TrueTypeFont)是Apple公司和Microsoft公司共同推出的字体文件格式,随着windows的流行,已经变成最常用的一种字体文件表示方式,TTF字体则只包含一种字型。
  • ttc格式
    TTC字体是TrueType字体集成文件(.TTC文件),是在一单独文件结构中包含多种字体,以便更有效地共享轮廓数据,当多种字体共享同一笔画时,TTC技术可有效地减小字体文件的大小。 TTC是几个TTF合成的字库,安装后字体列表中会看到两个以上的字体。如果几个字体中的大部分字都一样时,可以将几种字体做成一个TTC文件,常见的TTC字体,因为共享笔划数据,所以大多这个集合中的字体区别只是字符宽度不一样,以便适应不同的版面排版要求。
  • otf格式
    OTF是由Microsoft和Adobe公司开发的另外一种字体格式。它也是一种轮廓字体,比TrueType更为强大,最明显的一个好处就是可以在把PostScript字体嵌入到TrueType的软件中。并且还支持多个平台,支持很大的字符集,还有版权保护。可以说它是Type 1和TrueType的超集。
  • fon格式
    这种字体是针对特定的显示分辨率以不同大小存储的位图,用于Windows系统中屏幕上的菜单、按钮等处文字的显示。它并不是以矢量描述的,放大以后会出现锯齿,只适合屏幕描述。不过它的显示速度非常快,所以作为系统字体而在Windows中使用。
  • svg格式
    SVG全称是Scalable Vector Graphics,SVG是由W3C制定的开放标准的图形格式。SVG字体就是使用SVG技术来呈现字体,还有一种gzip压缩格式的SVG字体。
  • pfb格式
    PFB 格式是一种二进制字体文件格式,用于存储字体的轮廓数据。它通常与AFM文件一起使用,以提供字体的度量信息和轮廓数据。
  • afm格式
    AFM (Adobe Font Metrics) 是一种字体文件格式,用于描述字体的度量信息,如字母的宽度、高度、斜度等。它是一种文本文件,以ASCII码表示,通常与PFB (Printer Font Binary) 格式的字体文件一起使用。

三、安装windows字体到linux系统

1、打包windows系统字体

  将windows系统下的字体文件夹C:\Windows\Fonts打包成压缩包。整个字体文件夹有300MB以上,有些装的字体多的更大。当然如果我们只是需要某几种字体,我们也可以只拷贝确定的字体上传并安装。

2、安装fontconfig

  fc-list和fc-cache命令都依赖fontconfig软件包。

[root@s152 Fonts]# yum install fontconfig

3、查看linux系统下当前中文字体类型数量

[root@s152 ~]# fc-list :lang=zh
[root@s152 ~]# fc-list :lang=zh |wc -l
0

4、字体包上传并解压

[root@s152 ~]# cd /usr/share/fonts/
[root@s152 fonts]# ll
总用量 340028
drwxr-xr-x. 2 root root 4096 11月 28 15:07 dejavu
-rw-r–r-- 1 root root 348184334 12月 15 11:26 Fonts.zip
[root@s152 fonts]# unzip Fonts.zip

5、删除fon字体

  fon字体是windows环境专有,linux环境下无法安装和使用,为了避免报错和浪费空间全部删除即可。

[root@s152 fonts]# cd Fonts
[root@s152 Fonts]# rm -rf *.fon

6、安装mkfontscale命令

[root@s152 Fonts]# yum install mkfontscale

7、执行mkfontscale命令

  mkfontscale命令用于创建字体缩放文件,即将字体文件转换为可供X服务器使用的字体缩放文件。字体缩放文件包含了字体文件的相关信息,如字体名称、字体文件路径等。这些信息可以帮助X服务器在运行时快速查找和加载字体文件。
  mkfontdir命令用于创建字体目录文件,即将字体文件的相关信息写入字体目录文件。字体目录文件通常位于/usr/share/fonts或/usr/X11R6/lib/X11/fonts目录下,用于记录系统中可用的字体文件。当系统启动或者用户需要使用某个字体时,X服务器会读取字体目录文件来查找相应的字体文件。
  通过使用mkfontscale和mkfontdir命令,可以方便地管理和更新系统中的字体文件和字体目录,确保系统能够正确加载和使用字体。执行完这两个命令之后会生产fonts.scale和fonts.dir文件。

[root@s152 Fonts]# mkfontscale
[root@s152 Fonts]# mkfontdir
[root@s152 Fonts]# ll |grep dir
-rw-r–r-- 1 root root 210721 12月 15 11:38 fonts.dir
[root@s152 Fonts]# ll |grep scale
-rw-r–r-- 1 root root 210721 12月 15 11:38 fonts.scale

8、生成字体缓存

  强制重新生成字体缓存。

[root@s152 Fonts]# fc-cache -fv
/usr/share/fonts: 正在生成缓存,新增缓存内容:0 个字体,2 个目录
/usr/share/fonts/Fonts: 正在生成缓存,新增缓存内容:506 个字体,0 个目录
/usr/share/fonts/dejavu: 正在生成缓存,新增缓存内容:9 个字体,0 个目录
/usr/share/X11/fonts/Type1: 跳过,无此目录
/usr/share/X11/fonts/TTF: 跳过,无此目录
/usr/local/share/fonts: 跳过,无此目录
/root/.local/share/fonts: 跳过,无此目录
/root/.fonts: 跳过,无此目录
/usr/share/fonts/Fonts: 跳过,探测到循环目录
/usr/share/fonts/dejavu: 跳过,探测到循环目录
/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: 缓存生成成功

9、查看并统计中文字体

[root@s152 Fonts]# fc-list :lang=zh |wc -l
38
[root@s152 Fonts]# fc-list :lang=zh
/usr/share/fonts/Fonts/MSJH.TTC: Microsoft JhengHei UI:style=Regular
中文字体

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

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

相关文章

Nginx实现反向代理负载均衡实验

实验环境: VM REdhat虚拟机(192.168.87.5)一台、VM Redhat虚拟机(192.168.87.3)一台、阿里云服务器(47.93.79.92)一台 实验要求:通过windows浏览器访问192.168.87.5(虚…

MIT_线性代数笔记:线性代数常用概念及术语总结

目录 1.系数矩阵2.高斯消元法3.置换矩阵 Permutation4.逆矩阵 Inverse5.高斯-若尔当消元法6.矩阵的 LU 分解7.三角矩阵8.正定矩阵 1.系数矩阵 线性代数的基本问题就是解 n 元一次方程组。例如:二元一次方程组 2 x − y 0 − x 2 y 3 \begin{align*} & 2x -…

DeepSORT算法实现车辆和行人跟踪计数和是否道路违规检测(代码+教程)

DeepSORT算法是一种用于目标跟踪的算法,它可以对车辆和行人进行跟踪计数,并且可以检测是否存在道路违规行为。该算法采用深度学习技术来提取特征,并使用卡尔曼滤波器来估计物体的速度和位置。 DeepSORT算法通过首先使用目标检测算法来识别出…

全国客运飞机场数据,shp/excel格式,已可视化

基本信息. 数据名称: 全国客运飞机场数据 数据格式: Shpxlsx 数据时间: 2023年 数据几何类型: 点 数据坐标系: WGS84坐标系 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1xzqhdm行政区划代码2xzqhmc行政区划名称3mc机场名称4lon经度坐…

【文本到上下文 #7】探索 NLP 中的 Seq2Seq、编码器-解码器和注意力机制

一、说明 今天,我们将探讨序列到序列 (seq2seq) 模型的复杂工作原理,特别关注编码器-解码器架构和注意力机制。这些概念是各种 NLP 应用的基础,从机器翻译到问答系统。 这是可以期待的: Seq2Seq模型中的编码…

小程序开发平台微同城本地生活服务小程序功能 带完整的安装以及部署教程

移动互联网的普及,小程序已经成为一种新的应用形态,为本地生活服务提供了更多的可能性。微同城作为一款本地生活服务小程序,致力于为当地居民提供便捷、高效的生活服务体验。罗峰给大家分享微同城本地生活服务小程序的源码开发背景以及系统的…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之CheckboxGroup组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之CheckboxGroup组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、CheckboxGroup组件 提供多选框组件,通常用于某选项的打开或关…

【数据分析】numpy基础第三天

前言 本文只会讲解最常用的加、减、乘、除,点乘(或叫矩阵乘法)、还有广播机制。 本文代码 链接提取码:1024 第1部分:基础数学计算 使用NumPy进行基本的数学运算是十分直观和简单的。下面我们将展示一些基本的加、…

机器学习第二十七周周报 PINNs

文章目录 week27 PINNs摘要Abstract一、监督学习二、文献阅读1. 题目2. abstract3. 偏微分方程的数据驱动解3.1连续时间模型example(Schrodinger equation): 3.2离散时间模型Example (Allen–Cahn equation): 4. 文献解读4.1 Introduction4.2 创新点 三、…

1.28寒假集训

A: 解题思路&#xff1a; 移项就好v mv / (M - m) 下面是c代码&#xff1a; #include<iostream> using namespace std; int main() {int t;double M,m,v;cin >> t;while(t ! 0){cin >> M >> m >> v;printf("%.2lf\n",(m * v) / (M…

【动态规划】【字符串】【行程码】1531. 压缩字符串

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 LeetCode 1531. 压缩字符串 II 行程长度编码 是一种常用的字符串压缩方法&#xff0c;它将连续的相同字符&#xff08;重复 2 次或更多次&#xff09;替换为字符和表示字符计数的数字&#xff08;行程长度&#xff09;…

WordPress如何自定义日期和时间格式?附PHP日期和时间格式字符串

WordPress网站在很多地方都需要用到日期和时间&#xff0c;那么我们应该在哪里设置日期和时间呢&#xff1f;又如何自定义日期和时间格式呢&#xff1f;下面boke112百科就跟大家一起来学习一下PHP标准化的日期和时间格式字符串。 特别说明&#xff1a;格式字符是标准化的&#…

Material Components for Android助你打造精美App

Material Components for Android助你打造精美App 简介 Material Components for Android (MDC-Android) 是帮助开发者执行 Material Design 的工具。由谷歌的核心工程师和用户体验设计师团队开发&#xff0c;这些组件使得开发者可以可靠地开发工作流来构建美观且功能齐全的 …

RT-DETR改进有效系列目录 | 包含卷积、主干、RepC3、注意力机制、Neck上百种创新机制

💡 RT-DETR改进有效系列目录 💡 前言 Hello,各位读者们好 Hello,各位读者,距离第一天发RT-DETR的博客已经过去了接近两个月,这段时间里我深入的研究了一下RT-DETR在ultralytics仓库的使用,旨在为大家解决为什么用v8的仓库训练的时候模型不收敛,精度差的离谱的问题,…

sqli.labs靶场(8-17关)

8、第八关&#xff08;布尔盲注&#xff09; id1显示You are in...........&#xff0c;id1单引号不显示&#xff0c;id1 --显示正常 这个应该是单引号闭合&#xff0c;接下来就和第七关差不多上脚本 爆库名长度&#xff1a;id1%27%20and%20length(database()){i}%20-- 爆库…

如何在 VM 虚拟机中安装 Red Hat Enterprise Linux 9.3 操作系统保姆级教程(附链接)

一、VMware Workstation 虚拟机 先得安装 VM 虚拟机&#xff0c;没有的可以参考这篇文章安装 VM 虚拟机 如何在 VM 虚拟机中安装 Win10 操作系统保姆级教程&#xff08;附链接&#xff09;https://eclecticism.blog.csdn.net/article/details/135713915 二、Red Hat Linux 镜…

软考 系统分析师系列知识点之知识管理(2)

接前一篇文章&#xff1a;软考 系统分析师系列知识点之知识管理&#xff08;1&#xff09; 所属章节&#xff1a; 第7章. 企业信息化战略与实施 第7节. 企业信息系统 7.7.5 知识管理 相关试题 1. 知识管理是企业信息化过程中的重要环节&#xff0c;知识可以分为显性知识和隐性…

计算机网络——IP协议

前言 网络层的主要负责地址分配和路由选择,ip负责在网络中进行数据包的路由和传输。 IPv4报文组成&#xff08;了解&#xff09; IPv4首部&#xff1a;IPv4首部包含了用于路由和传输数据的控制信息&#xff0c;其长度为20个字节&#xff08;固定长度&#xff09;。 版本&#…

leetcode26. 删除有序数组中的重复项

题目 题目 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &…

前端——JavaScript

目录 文章目录 前言 一. JavaScript基础 1.JavaScript基本结构 2. JavaScript 执行过程 3. JavaScript 引入方式 二. JavaScript 语法 1.数据类型 2.变量 2.1 var 关键字定义变量 2.2 let 关键字定义变量 2.3 var 与 let 的区别 3.字符串 3.1定义字符串 3.2 字…