帆软Linux导出或打印乱码
Linux导出或打印乱码
1. 问题描述
2. 原因
3. 解决方案
帆软报表_导出图表中文图例丢失
场景:
在本地导出图表,图例正常,在服务器导出,图例丢失
原因:
图例为中文字符,服务器上未安装中文字体
解决方案:
将C:\Windows\Fonts 中的MSYH.TTF复制到/usr/share/fonts/目录下
然后建立字体索引信息,更新字体缓存,使用如下命令:
cd /usr/share/fonts/
mkfontscale
mkfontdir
fc-cache
现在我们再来查看微软雅黑字体,是否安装成功,使用如下命令:
fc-list :lang=zh
1. 概述
1.1 问题描述
使用 Linux 系统时,有时我们会遇到中文乱码。如下图所示:
1.2 解决思路
出现这个情况一般是由于没有安装中文语言包或者设置的默认语言有问题导致的,可参考本文方法进行排查和解决。
2. 操作步骤
本文以 CentOS7 系统为例。
2.1 查看当前系统语言环境
locale
2.2 查看是否存在中文语言包
查看是否存在中文语言包
locale -a | grep zh_CN
zh_CN.utf8是简体中文,如果没有zh_CN.utf8,就安装语言包,如果存在可以直接设置。
2.3 安装中文语言包
若参考 2.2 节内容,当前系统已有zh_CN.utf8,忽略本节内容。
yum install kde-l10n-Chinese
2.4 临时修改系统默认语言
临时修改,重启服务器之后就会还原为之前的设置。
修改为中文,如下所示:
LANG="zh_CN.UTF-8"
使用locale查看当前系统语言,已被成功修改。
2.5 永久修改系统默认语言
2.5.1 方法一
vi /etc/locale.conf
LANG=zh_CN.UTF8
如下图所示:
保存后使用reboot重启系统即可。
2.5.2 方法二
localectl set-locale LANG=zh_CN.UTF8
使用reboot重启系统即可。

如何在Linux服务器和windows系统之间上传与下载文件
背景:Linux服务器文件上传下载。
XShell+Xftp安装包(解压即用)百度网盘链接:https://pan.baidu.com/s/1uLW8oQVW7O7uJtGcuT5U8g 提取码: a9fb
方式一、通过Shell
First.
开启本地虚拟机,在Shell中连接本地Linux服务器,其中主机填Linux的IP地址、用户名和密码是Linux的登陆名和密码、其它的保留默认值,确定,然后接受并保存即可。
Second
sz命令发送文件到本地
# sz filename
rz命令本地上传文件到服务器
#rz
执行rz命令后,在弹框中新增要上传的文件即可
方式二、通过Xftp
使用Xftp更方便,也更为所欲为吧。
First
安装下Xftp之后就超简单了,上面链接下载后解压即用,和Shell一样登录方式,然后左右拖拽想要的文件。
如下图:
Besides,若是XShell启动报错,“丢失MSVCR110.dll”,那么就安装下这个玩意吧:
MSVCR110.dll安装包 https://pan.baidu.com/s/1GLM5bQ_O9nNNtcqhl7WlCA 提取码: 4xwy
至于为什么呢,感兴趣的可以看下这一位大牛的Blog,里面有解释 https://blog.csdn.net/franck_lou/article/details/78438268
服务器安装字体
1. 概述
1.1 问题描述
1)用户在打印、导出时,会出现与预览结果不一致的情况。如:
-
在 Linux 环境下,发现客户端预览是正常的,但是在导出或打印时会出现乱码,或者一些特殊符号如人民币符号「¥」,在导出或打印时发现变成了美元符号「$」。
-
在 Linux 系统的客户端,预览或导出的图片乱码。
-
Linux 下打印预览,有重影。
-
Linux 服务器导出文字重叠。
-
导出 pdf 时图表里的中文变成框框。
-
本来设置的字体是微软雅黑,但是导出来的 PDF 却是宋体。
-
插入斜线乱码,斜线为方框。
2)在本地设计器工程下预览字体正常,保存在服务器上,通过服务器预览时,效果和设计器工程预览不一致。
3)在 Linux 系统中出现报表斜线丢失。
4)Linux 系统中,在主报表中插入子报表,如果子报表有中文,那么在主报表中显示的时候会出现中文乱码,但主报表其他部分或者子报表单独访问的时候中文并不会乱码。
1.2 原因分析
-
客户端导出或者打印时,字体使用的是服务器的系统字体和服务器依赖的 JRE 下的字体,若服务器没有设计器设计时选用的字体,则会出现乱码或者字体被替换的问题。
-
设计器设计报表时,使用的是设计器所在设备本地系统的字体,保存在服务器上后,若服务器没有设计器设计时选用的字体,则会出现预览不一致的问题。
-
对于 Linux 系统 Java 在 drawString 的时候,可能会没有对应的字体,此时就会出现斜线丢失的情况。
-
在使用插入子报表时,实际上是在服务器端事先画好图片,当客户端发出请求访问主报表时,再去调用已画好的图片。当插入的子报表中含有中文的时候会调用操作系统中的语言包,如果 Linux 中没有安装中文语言包会导致出现乱码现象。
1.3 解决思路
服务器安装缺失的字体包。
注1:服务器安装后,如果要在客户端浏览器预览时也显示出字体效果,客户端系统也必须安装该字体。
注2:集群环境下,需要在所有节点安装缺失的字体。
2. Linux 系统如何安装
2.1 检查中文语言包
检查系统中是否有字体包 zh_cn.UTF-8 ,查看系统默认语言是否为 zh_cn.UTF-8 ,如下图所示:
locale -a | grep zh_CN
若不是,安装中文语言包以及设置系统默认语言的方法请参见:Linux 系统安装中文语言包
2.2 确认缺失字体
查看有问题的字体部分,确认可能缺失的字体。例如缺失黑体,如下图所示:
11.0 及之后的版本支持制作模板或预览模板时对使用的字体进行检测,如果不包含对应字体,将提示设计者或者使用者,设计者或者使用者即可不用自己查找缺失的字体。详细内容可参考:字体缺失检测
2.3 安装缺失字体
1)使用 fc-list 查看字体库,如下图所示:
注:若提示:-bash: fc-list: command not found,使用 yum -y install fontconfig语句后,再次查看字体库。
2)在 /usr/share/fonts目录下新建一个目录 chinese,把本地 Windows 系统 C:\Windows\Fonts中的字体,上传到 /usr/share/fonts/chinese目录下。例如上传「黑体常规」字体,如下图所示:
3)修改chinese文件夹权限,如下图所示:
chmod -R 755 /usr/share/fonts/chinese
4)执行下面命令:
cd /usr/share/fonts/chinese
mkfontscale #字体扩展
mkfontdir #新增字体目录
fc-cache -fv #刷新缓存,或者执行
fc-cache /usr/share/fonts/chinese/fc-list #查看系统字体
若执行 mkfontscale,提示 mkfontscale: command not found,需安装:yum install mkfontscale。
执行命令:fc-list | grep simhei.ttf ,查看是否安装成功,如下图所示:
2.4 重启服务器
字体安装好后,重启服务器工程。预览、导出、打印时就会显示处对应的字体。
总结:
1、首先看是否使用的服务器账号有相应的修改权限;
2、检查中文语言包,检查系统中是否有字体包 zh_cn.UTF-8,且中文语言包是否默认中文。默认中文存在两种设置,a\临时默认中文语言包(重启服务器会恢复);b\始终默认中文语言包,重启之后也不会变化;
3、服务器usr/share/fonts/chinese下是否有安装相应的字体,如没有,把windows下需要的字体拷贝到该文件夹下,并进行缓存等相应问题Linux命令执行。之后重启帆软服务即完成整个操作。亲测有效。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南