1. 程式人生 > 其它 >短視訊商城原始碼,頂部標題欄的設定和更改

短視訊商城原始碼,頂部標題欄的設定和更改

    引用:https://www.jianshu.com/p/bcede182647e

一、原因分析

    這原因由於Linux是開源的,很多的字型沒有被預設安裝,在生成PDF的時候找不到對應字型找不到導致的。

1.檢視系統預裝字型

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

cat /etc/issue # 檢視Linux發行版本

Centos
Ubuntu
fc-list # 檢視已有字型
fc-list :lang=zh # 檢視中文字型


如果找到了中文字型,就需要檢視PDF中的字型是否有被安裝,沒有被安裝就需要安裝相對應的字型。

2.安裝字型

安裝字型這玩意,可以只安裝自己需要的字型,但是建議是將Win的所有字型全部安裝好,這樣一步到位,比較省心。

首先將Win的字型全部打包成Zip匯入到需要被安裝的Linux主機上。
Win字型存放路徑 C:\Windows\Fonts

如果安裝全部的字型就直接將這個資料夾Copy一份到其他的目錄下然後直接將這個資料夾打包成壓縮包。(這樣比較靠譜)

然後將這個壓縮包上傳到伺服器上的 /usr/share/fonts/目錄下

我的是用Powershell上傳的

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

然後上到Linux機器上 執行如下命令

unzip ./Fonts.zip
rm -rf ./Fonts.zip
rm -rf ./*.fon #這種字型是安裝不上的
mkfontscale
mkfontdir
fc-cache

這個壓縮包中的字型不會被全部安裝的,有幾個是安裝不上的,但是不影響基本使用
應該是隻能安裝ttf和ttc的字型,我猜的

fc-list :lang=zh

到這裡字型就安裝完畢了,再試試生成PDF應該就沒有問題了。

3.執行在Docker中的程式如何解決這個問題

首先將源映象下載下來
然後直接啟動源映象

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

然後將檔案拷貝進去

cd .\Desktop\
docker cp .\Fonts.zip quizzical_darwin:/ # 這裡要用容器名字
docker exec -it  quizzical_darwin /bin/bash # 進入容器中

再執行ubuntu的那些操作(使用本文上面的字型安裝步驟,安裝成功後退出)

然後再將這個有字型的映象做成源映象

docker commit -a "hulailai" -m ".net core for pdf-service" 20269bb55607 dotnet-font-base

如果需要上傳到伺服器就直接大哥標籤然後上傳到伺服器

docker tag dotnet-font-base xxxx
docker push xxxx

搞定

再將這個源映象作為你容器執行的 源映象就OK了。