帆軟Linux導(dǎo)出或打印亂碼
Linux導(dǎo)出或打印亂碼
1. 問題描述
2. 原因
3. 解決方案
帆軟報(bào)表_導(dǎo)出圖表中文圖例丟失
場(chǎng)景:
在本地導(dǎo)出圖表,圖例正常,在服務(wù)器導(dǎo)出,圖例丟失
原因:
圖例為中文字符,服務(wù)器上未安裝中文字體
解決方案:
將C:\Windows\Fonts 中的MSYH.TTF復(fù)制到/usr/share/fonts/目錄下
然后建立字體索引信息,更新字體緩存,使用如下命令:
cd /usr/share/fonts/
mkfontscale
mkfontdir
fc-cache
現(xiàn)在我們?cè)賮聿榭次④浹藕谧煮w,是否安裝成功,使用如下命令:
fc-list :lang=zh

1. 概述
1.1 問題描述
使用 Linux 系統(tǒng)時(shí),有時(shí)我們會(huì)遇到中文亂碼。如下圖所示:

1.2 解決思路
出現(xiàn)這個(gè)情況一般是由于沒有安裝中文語言包或者設(shè)置的默認(rèn)語言有問題導(dǎo)致的,可參考本文方法進(jìn)行排查和解決。
2. 操作步驟
本文以 CentOS7 系統(tǒng)為例。
2.1 查看當(dāng)前系統(tǒng)語言環(huán)境
locale

2.2 查看是否存在中文語言包
查看是否存在中文語言包
locale -a | grep zh_CN

zh_CN.utf8是簡(jiǎn)體中文,如果沒有zh_CN.utf8,就安裝語言包,如果存在可以直接設(shè)置。
2.3 安裝中文語言包
若參考 2.2 節(jié)內(nèi)容,當(dāng)前系統(tǒng)已有zh_CN.utf8,忽略本節(jié)內(nèi)容。
yum install kde-l10n-Chinese
2.4 臨時(shí)修改系統(tǒng)默認(rèn)語言
臨時(shí)修改,重啟服務(wù)器之后就會(huì)還原為之前的設(shè)置。
修改為中文,如下所示:
LANG="zh_CN.UTF-8"

使用locale查看當(dāng)前系統(tǒng)語言,已被成功修改。
2.5 永久修改系統(tǒng)默認(rèn)語言
2.5.1 方法一
vi /etc/locale.conf
LANG=zh_CN.UTF8
如下圖所示:

保存后使用reboot重啟系統(tǒng)即可。
2.5.2 方法二
localectl set-locale LANG=zh_CN.UTF8
![]()
使用reboot重啟系統(tǒng)即可。

如何在Linux服務(wù)器和windows系統(tǒng)之間上傳與下載文件
背景:Linux服務(wù)器文件上傳下載。
XShell+Xftp安裝包(解壓即用)百度網(wǎng)盤鏈接:https://pan.baidu.com/s/1uLW8oQVW7O7uJtGcuT5U8g 提取碼: a9fb
方式一、通過Shell
First.
開啟本地虛擬機(jī),在Shell中連接本地Linux服務(wù)器,其中主機(jī)填Linux的IP地址、用戶名和密碼是Linux的登陸名和密碼、其它的保留默認(rèn)值,確定,然后接受并保存即可。
Second
sz命令發(fā)送文件到本地
# sz filename
rz命令本地上傳文件到服務(wù)器
#rz
執(zhí)行rz命令后,在彈框中新增要上傳的文件即可

方式二、通過Xftp
使用Xftp更方便,也更為所欲為吧。
First
安裝下Xftp之后就超簡(jiǎn)單了,上面鏈接下載后解壓即用,和Shell一樣登錄方式,然后左右拖拽想要的文件。
如下圖:

Besides,若是XShell啟動(dòng)報(bào)錯(cuò),“丟失MSVCR110.dll”,那么就安裝下這個(gè)玩意吧:
MSVCR110.dll安裝包 https://pan.baidu.com/s/1GLM5bQ_O9nNNtcqhl7WlCA 提取碼: 4xwy
至于為什么呢,感興趣的可以看下這一位大牛的Blog,里面有解釋 https://blog.csdn.net/franck_lou/article/details/78438268
服務(wù)器安裝字體
1. 概述
1.1 問題描述
1)用戶在打印、導(dǎo)出時(shí),會(huì)出現(xiàn)與預(yù)覽結(jié)果不一致的情況。如:
-
在 Linux 環(huán)境下,發(fā)現(xiàn)客戶端預(yù)覽是正常的,但是在導(dǎo)出或打印時(shí)會(huì)出現(xiàn)亂碼,或者一些特殊符號(hào)如人民幣符號(hào)「¥」,在導(dǎo)出或打印時(shí)發(fā)現(xiàn)變成了美元符號(hào)「$」。
-
在 Linux 系統(tǒng)的客戶端,預(yù)覽或?qū)С龅膱D片亂碼。
-
Linux 下打印預(yù)覽,有重影。
-
Linux 服務(wù)器導(dǎo)出文字重疊。
-
導(dǎo)出 pdf 時(shí)圖表里的中文變成框框。
-
本來設(shè)置的字體是微軟雅黑,但是導(dǎo)出來的 PDF 卻是宋體。
-
插入斜線亂碼,斜線為方框。
2)在本地設(shè)計(jì)器工程下預(yù)覽字體正常,保存在服務(wù)器上,通過服務(wù)器預(yù)覽時(shí),效果和設(shè)計(jì)器工程預(yù)覽不一致。
3)在 Linux 系統(tǒng)中出現(xiàn)報(bào)表斜線丟失。
4)Linux 系統(tǒng)中,在主報(bào)表中插入子報(bào)表,如果子報(bào)表有中文,那么在主報(bào)表中顯示的時(shí)候會(huì)出現(xiàn)中文亂碼,但主報(bào)表其他部分或者子報(bào)表單獨(dú)訪問的時(shí)候中文并不會(huì)亂碼。
1.2 原因分析
-
客戶端導(dǎo)出或者打印時(shí),字體使用的是服務(wù)器的系統(tǒng)字體和服務(wù)器依賴的 JRE 下的字體,若服務(wù)器沒有設(shè)計(jì)器設(shè)計(jì)時(shí)選用的字體,則會(huì)出現(xiàn)亂碼或者字體被替換的問題。
-
設(shè)計(jì)器設(shè)計(jì)報(bào)表時(shí),使用的是設(shè)計(jì)器所在設(shè)備本地系統(tǒng)的字體,保存在服務(wù)器上后,若服務(wù)器沒有設(shè)計(jì)器設(shè)計(jì)時(shí)選用的字體,則會(huì)出現(xiàn)預(yù)覽不一致的問題。
-
對(duì)于 Linux 系統(tǒng) Java 在 drawString 的時(shí)候,可能會(huì)沒有對(duì)應(yīng)的字體,此時(shí)就會(huì)出現(xiàn)斜線丟失的情況。
-
在使用插入子報(bào)表時(shí),實(shí)際上是在服務(wù)器端事先畫好圖片,當(dāng)客戶端發(fā)出請(qǐng)求訪問主報(bào)表時(shí),再去調(diào)用已畫好的圖片。當(dāng)插入的子報(bào)表中含有中文的時(shí)候會(huì)調(diào)用操作系統(tǒng)中的語言包,如果 Linux 中沒有安裝中文語言包會(huì)導(dǎo)致出現(xiàn)亂碼現(xiàn)象。
1.3 解決思路
服務(wù)器安裝缺失的字體包。
注1:服務(wù)器安裝后,如果要在客戶端瀏覽器預(yù)覽時(shí)也顯示出字體效果,客戶端系統(tǒng)也必須安裝該字體。
注2:集群環(huán)境下,需要在所有節(jié)點(diǎn)安裝缺失的字體。
2. Linux 系統(tǒng)如何安裝
2.1 檢查中文語言包
檢查系統(tǒng)中是否有字體包 zh_cn.UTF-8 ,查看系統(tǒng)默認(rèn)語言是否為 zh_cn.UTF-8 ,如下圖所示:
locale -a | grep zh_CN

若不是,安裝中文語言包以及設(shè)置系統(tǒng)默認(rèn)語言的方法請(qǐng)參見:Linux 系統(tǒng)安裝中文語言包
2.2 確認(rèn)缺失字體
查看有問題的字體部分,確認(rèn)可能缺失的字體。例如缺失黑體,如下圖所示:

11.0 及之后的版本支持制作模板或預(yù)覽模板時(shí)對(duì)使用的字體進(jìn)行檢測(cè),如果不包含對(duì)應(yīng)字體,將提示設(shè)計(jì)者或者使用者,設(shè)計(jì)者或者使用者即可不用自己查找缺失的字體。詳細(xì)內(nèi)容可參考:字體缺失檢測(cè)
2.3 安裝缺失字體
1)使用 fc-list 查看字體庫(kù),如下圖所示:
注:若提示:-bash: fc-list: command not found,使用 yum -y install fontconfig語句后,再次查看字體庫(kù)。

2)在 /usr/share/fonts目錄下新建一個(gè)目錄 chinese,把本地 Windows 系統(tǒng) C:\Windows\Fonts中的字體,上傳到 /usr/share/fonts/chinese目錄下。例如上傳「黑體常規(guī)」字體,如下圖所示:

3)修改chinese文件夾權(quán)限,如下圖所示:
chmod -R 755 /usr/share/fonts/chinese
![]()
4)執(zhí)行下面命令:
cd /usr/share/fonts/chinese
mkfontscale #字體擴(kuò)展
mkfontdir #新增字體目錄
fc-cache -fv #刷新緩存,或者執(zhí)行
fc-cache /usr/share/fonts/chinese/fc-list #查看系統(tǒng)字體
若執(zhí)行 mkfontscale,提示 mkfontscale: command not found,需安裝:yum install mkfontscale。
執(zhí)行命令:fc-list | grep simhei.ttf ,查看是否安裝成功,如下圖所示:
![]()
2.4 重啟服務(wù)器
字體安裝好后,重啟服務(wù)器工程。預(yù)覽、導(dǎo)出、打印時(shí)就會(huì)顯示處對(duì)應(yīng)的字體。
總結(jié):
1、首先看是否使用的服務(wù)器賬號(hào)有相應(yīng)的修改權(quán)限;
2、檢查中文語言包,檢查系統(tǒng)中是否有字體包 zh_cn.UTF-8,且中文語言包是否默認(rèn)中文。默認(rèn)中文存在兩種設(shè)置,a\臨時(shí)默認(rèn)中文語言包(重啟服務(wù)器會(huì)恢復(fù));b\始終默認(rèn)中文語言包,重啟之后也不會(huì)變化;
3、服務(wù)器usr/share/fonts/chinese下是否有安裝相應(yīng)的字體,如沒有,把windows下需要的字體拷貝到該文件夾下,并進(jìn)行緩存等相應(yīng)問題Linux命令執(zhí)行。之后重啟帆軟服務(wù)即完成整個(gè)操作。親測(cè)有效。

浙公網(wǎng)安備 33010602011771號(hào)