Tag - linux

解决Linux下生成PDF中文乱码的问题

2025-11-07 09:05:43    20    0    0

原文链接

1.原因分析

这原因由于Linux是开源的,很多的字体没有被默认安装,在生成PDF的时候找不到对应字体找不到导致的。

1.查看系统预装字体

fc-list # 查看已有字体

如果找不到 fc-list的命令,就执行下面的安装命令

cat /etc/issue # 查看Linux发行版本
Centos
yum install -y fontconfig mkfontscale
Ubuntu
apt-get -y install fontconfig xfonts-utils
fc-list # 查看已有字体
fc-list :lang=zh # 查看中文字体

如果找到了中文字体,就需要查看PDF中的字体是否有被安装,没有被安装就需要安装相对应的字体。

2.安装字体

安装字体这玩意,可以只安装自己需要的字体,但是建议是将Win的所有字体全部安装好,这样一步到位,比较省心。

首先将Win的字体全部打包成Zip导入到需要被安装的Linux主机上。
Win字体存放路径 C:\Windows\Fonts

 
image.png

 

如果安装全部的字体就直接将这个文件夹Copy一份到其他的目录下然后直接将这个文件夹打包成压缩包。(这样比较靠谱)


 
image.png

然后将这个压缩包上传到服务器上的 /usr/share/fonts/目录下
我的是用Powershell上传的

scp  xxx/xxx/Fonts.zip root@192.168.1.122:/usr/share/fonts/

然后上到Linux机器上 执行如下命令

cd /usr/share/fonts/
unzip ./Fonts.zip
rm -rf ./Fonts.zip
rm -rf ./*.fon #这种字体是安装不上的
mkfontscale
mkfontdir
fc-cache

这个压缩包中的字体不会被全部安装的,有几个是安装不上的,但是不影响基本使用
应该是只能安装ttf和ttc的字体,我猜的


 
image.png
fc-list :lang=zh
 
image.png

到这里字体就安装完毕了,再试试生成PDF应该就没有问题了。

3.运行在Docker中的程序如何解决这个问题

首先将源镜像下载下来
然后直接启动源镜像

docker run -it -d xxxx/dotnet/aspnet:3.1-buster-slim

然后将文件拷贝进去

cd .\Desk

Linux日常高频使用的命令

2025-11-06 16:50:08    16    1    1

1. 查看系统信息

如何查看系统版本:

uname -alsb_release -acat /etc/os-release

如何查看系统内核信息:

uname -r

如何查看系统CPU信息:

lscpucat /proc/cpuinfo

如何查看内存使用情况:

free -hcat /proc/meminfo

如何监控监控系统资源(CPU、内存、IO):

vmstat

如何查看系统运行时间:

uptime

如何查看最近一次启动时间:

who -b

如何查看当前用户历史使用的命令:

historycat .bash_history

如何查看系统负载:

top    //实时监控系统负载,通过q建或者ctrl+c退出

2. 磁盘和文件管理

如何查看磁盘使用情况:

df -h

如何查看目录或者文件大小:

du -hs <文件或者文件夹>

如何查找大文件:

find <某文件夹> -type f -size +100M   //查找某文件夹大于100M的文件

如何挂载磁盘:比如usb

### 查看usb的磁盘盘符lsblk -o NAME,MODEL,TRAN ### 查看 /mnt 是空的ls /mnt/### 将USB的盘符挂载到/mnt文件夹中mount /dev/<usb的盘符> /mnt/

如何卸载磁盘:

umount /mnt

如何查看磁盘的UUID:

blkid

3. 网络和路由管理

如何查看IP地址:

ip a sifconfig

如何测试网路连通性:

ping <目的地址> -c 5curl <IP地址>:<端口号>  //如果有防火墙,ping可能不通,需要直接curl IP和端口号查看

如何查看路由表:

route -n ip route

需要注意的是Linux里可以有多路由表,ip route 默认打印的是主路由表里的路由条目。

如何查看Linux中有几张路由表:

cat /etc/iproute2/rt_tables

如何查看不同路由表里的路由:

ip route show table <route table id或者route table name>比如:ip route show table 255ip route show table main

如何查看各服务端口使用情况以及连接状态:

netstat -tulanpss -tulanp

如何抓取流量也就数如何抓包:

tcpdump -i <interface> <filte