在 ONLYOFFICE 文件伺服器中新增字型:Docker 與 Linux

若要為 ONLYOFFICE 文件伺服器新增自訂字體,請將已授權的字型檔案放置在伺服器可存取的目錄中並執行命令/usr/bin/documentserver-generate-allfonts.sh。對於 Docker 部署,通常建議使用綁定掛載的字型目錄,而不是將檔案複製到正在執行的容器中,因為綁定掛載的字型目錄在容器重建後仍然存在。

正確的安裝方法取決於 ONLYOFFICE Docs 的運作位置、重建頻率,以及在刷新字型目錄時是否可以接受短暫的服務中斷。

ONLYOFFICE 文件編輯器,帶有字型下拉式選單,顯示已安裝的字型和範例文件。
編輯器字體下拉清單列出了可用的字體系列;在伺服器字體目錄更新之前,缺少的字體可能會被替代字體取代。

選擇字型安裝方式

方法最佳匹配權衡
Docker 綁定掛載使用 Docker Compose 管理生產容器需要編輯容器配置,可能需要重新建立。
docker cp進入運行容器快速測試或臨時添加當容器被替換時,檔案可能會消失。
在執行原生文件伺服器軟體套件的 Linux 主機上安裝字體無需 Docker 的 DEB/RPM 式安裝需要伺服器層級的管理,並且始終與該主機綁定。

官方的 Docker 字體說明文件介紹如何複製文件並重建字體清單。 Docker 的綁定掛載參考文件解釋了為什麼掛載專用的主機資料夾可以讓檔案在容器替換後仍然可用。這些是不同的部署方式,而不是不同的字體格式。

準備字型檔案並確認目標伺服器

1. 確定目前活動的 ONLYOFFICE 部署

docker ps如果編輯器運行在容器中,請在 Docker 主機上執行。在NAMES對應列中尋找文件伺服器容器名稱;以下範例使用 `<container_name>` onlyoffice-documentserver。如果您的名稱不同,請替換該值。 Nextcloud 或 ownCloud 整合通常不會改變字型必須安裝在 ONLYOFFICE Docs 伺服器上的事實,而不僅僅是在儲存伺服器或檢視文件的電腦上。

docker ps
Ubuntu 終端機顯示 docker ps 指令的輸出,以及正在執行的 ONLYOFFICE 文件伺服器容器。
在複製字型或重新產生目錄之前,請先在 Docker 清單中找到文件伺服器容器。

2. 收集授權字型文件

選擇完整且獲得正確授權的字體系列,包括文件實際使用的字重和樣式。 ONLYOFFICE在其Linux 字型文件.ttf中列出了 TrueType 和 OpenType 格式(例如.tf 和 .tf),以及其他支援的字型副檔名。為了確保首次部署的可預測性,請使用普通的 TTF 或 OTF 文件,並核實字體許可中允許的伺服器和用戶端使用方式。.otf

對於 Docker 範例,請將檔案暫存在/srv/onlyoffice/custom-fontsDocker 主機上。範例檔案名稱Inter-Regular.ttf僅供Inter-Bold.ttf參考;請使用您有權安裝的檔案。

sudo mkdir -p /srv/onlyoffice/custom-fonts
sudo cp Inter-Regular.ttf Inter-Bold.ttf /srv/onlyoffice/custom-fonts/
sudo chmod 644 /srv/onlyoffice/custom-fonts/*.ttf

請在包含字體檔案的目錄中執行這些命令。繼續操作前,請檢查資料夾內容。在受管系統中,請根據您的安全性原則調整所有權和權限,而不是將資料夾設定為所有人可寫入。

Linux 檔案管理器顯示自訂字體目錄中的常規字體、粗體字體和其他字體檔案。
將所有字體變體放在一個專用目錄中,以便可以將其掛載到文件伺服器容器中。

推薦用於 Docker:持久掛載字型目錄

3. 在現有的 Compose 服務中新增綁定掛載

在目前的 Compose 檔案中,找到執行 ONLYOFFICE 文件伺服器映像的服務。在其現有volumes清單中新增以下條目;保留已配置的其他磁碟區、連接埠、憑證和環境變數:

services:
  onlyoffice-documentserver:
    volumes:
      - /srv/onlyoffice/custom-fonts:/usr/share/fonts/truetype/custom:ro

來源路徑位於 Docker 主機上;目標路徑位於容器內部。:ro後綴限制容器對字體目錄的寫入。掛載專用custom目錄,而不是替換整個目錄/usr/share/fonts樹,因為替換整個目錄樹可能會隱藏鏡像提供的字體。官方ONLYOFFICE Dockerfile在其社群版和企業版映像階段都將自訂 TrueType 字型目錄宣告為一個磁碟區。

查看修改後的 Compose 配置,然後從專案目錄套用它docker compose up -d。這可能會重新建立服務:請安排在編輯人員可以安全關閉文件時進行變更。如果您使用普通部署,請在重新建立容器時docker run新增對應的唯讀參數。--mount type=bind,src=/srv/onlyoffice/custom-fonts,dst=/usr/share/fonts/truetype/custom,readonly

程式碼編輯器顯示了一個 Docker Compose 磁碟區條目,該條目將主機自訂字體資料夾對應到 ONLYOFFICE。
一個專用的唯讀卷條目將自訂字型檔案與容器映像分開。

4. 確認容器可以辨識字型文件

服務執行後,檢查已掛載的目錄,如果可用,也應檢查 fontconfig 清單。 fontconfig 報告的字型系列名稱可能與檔案名稱不同。

docker exec onlyoffice-documentserver ls -l /usr/share/fonts/truetype/custom
docker exec onlyoffice-documentserver fc-list | grep -i 'Inter'

對於範例 Inter 字體,如果 fontconfig 偵測到符合的字體系列,則第二個命令應該列出該字體系列。如果檔案存在但字體系列未顯示,請檢查權限並執行命令docker exec onlyoffice-documentserver fc-cache -f,然後再次檢查fc-list。僅靠 fontconfig 的偵測功能無法填入 ONLYOFFICE 編輯器的選單。

終端機顯示 docker exec fc-list 指令正在搜尋安裝在自訂字型目錄中的 Inter 字型。
檢查 fontconfig 有助於將無法讀取或缺少的字型檔案與過時的 ONLYOFFICE 字型目錄區分開來。

5. 重新產生 ONLYOFFICE 字型目錄

利用容器內的文件,執行文件伺服器的字型產生腳本:

docker exec onlyoffice-documentserver /usr/bin/documentserver-generate-allfonts.sh

ONLYOFFICE 使用此步驟刷新其字型選擇資料和資源。此操作可能會影響正在執行的編輯器服務,因此請在適當的維護期間執行。文件中記錄的 Docker 環境變數GENERATE_FONTS也預設為true`--font-data-data-name`,即在容器啟動時重新產生字型資料;這在重新啟動後很有用,但不能取代將檔案安裝到持久位置。

請勿GENERATE_FONTS僅為了掩蓋卷缺失而進行更改或強制重啟。請先確認所需文件是否已實際掛載。

終端機顯示 documentserver-generate-allfonts.sh 指令和字型目錄產生訊息。
在容器可以存取新字型檔案後,執行文件伺服器字型產生腳本。

替代方案:臨時 Docker 映像或原生 Linux

6. 使用直接容器副本進行短期測試

如果無法立即變更 Compose,請將檔案複製到目前容器並重新建置目錄。這遵循 ONLYOFFICE 官方文件中記錄的 Docker 方法,避免了為了快速測試而重新建置容器:

docker cp ./Inter-Regular.ttf onlyoffice-documentserver:/usr/share/fonts/truetype/custom/
docker exec onlyoffice-documentserver /usr/bin/documentserver-generate-allfonts.sh

這種方法便於故障排除,但作為部署方案可靠性較低。鏡像更新或新容器可能會刪除已複製的檔案;重啟同一個容器並不等於重新建立。當後續工作需要使用該字體時,應將測試成功的鏡像提升到綁定掛載或單獨維護的自訂鏡像。

7. 直接安裝在非容器化的 Linux 文件伺服器上

對於原生 Linux 軟體包安裝,請將檔案放入伺服器的系統字型目錄,並在該主機上執行相同的重新產生腳本。此命令不能在普通使用者的桌面上運行。

sudo install -d -m 755 /usr/share/fonts/truetype/custom
sudo install -m 644 Inter-Regular.ttf /usr/share/fonts/truetype/custom/
sudo /usr/bin/documentserver-generate-allfonts.sh

這種方法會將字型檔案保留在 Linux 系統安裝目錄下,而不是 Docker 磁碟區中,但管理員在重建主機時必須將其儲存在設定管理或備份中。有關軟體包安裝伺服器的設定步驟,請參閱 ONLYOFFICE 官方 Linux 文件。如果您的編輯人員使用多個文件伺服器節點,請在每個節點上配置相同的字型系列及其變體。

Linux 終端機顯示將 Inter 字型複製到系統字型目錄,然後執行 ONLYOFFICE 字型重新產生指令。
在原生 Linux 文件伺服器上,在該伺服器上安裝字體,並在不使用 Docker 命令的情況下重新產生其字體目錄。

8. 在實際文件中驗證字體

在連接到文件伺服器的應用程式中開啟一個新的編輯會話。在測試 DOCX 檔案中,從字體下拉清單中選擇已安裝的字體系列,輸入一行普通文本、一行粗體文本,如果該字體適用於多語言,則輸入一些代表性的非英文字元。儲存、關閉、重新開啟並匯出為 PDF 檔案。將文字寬度、換行、字形覆蓋率以及粗體/斜體變體與已知的參考文件進行比較。

如果下拉式選單中缺少某個字體,請fc-list依序檢查伺服器路徑、`npm run dev` 指令的輸出以及目錄產生指令。如果字體系列出現但佈局發生變化,請確認文件要求的字體系列是否正確,以及所需的字重是否存在;否則,編輯器可能會替換為其他字體。僅在使用者桌面安裝字型並不會將其新增至伺服器。

需要注意一點,這僅適用於特定版本的瀏覽器:ONLYOFFICE 的字體設定說明指出,在8.1.3 或更早版本中,需要清除瀏覽器快取並重新開啟編輯器。在更高版本中,則無需執行此額外步驟。如果您的安裝版本較舊,請先嘗試清除緩存,然後再排查更複雜的問題。

ONLYOFFICE 編輯器,在字體下拉選單中選擇 Inter,並提供了一個使用該字體的範例段落。
確認字體系列出現在選單中,然後重新開啟已儲存的文檔,比較其換行和渲染的字形。

如果重新開啟編輯器後自訂字體系列仍然可選,已儲存的文件能夠正確渲染,並且(對於 Docker 而言)從相同配置重新建立服務後字體仍然存在,則表示修復已成功。如果上述任何一項檢查失敗,請檢查該圖層,而不是重複將字體複製到容器中。

留下評論

診斷卡在 systemd 關閉螢幕的 SUSE 伺服器

診斷卡在 systemd 關閉螢幕的 SUSE 伺服器

使用 systemd 作業和先前的啟動日誌來尋找運行緩慢的服務、掛載點或儲存依賴項,然後修正它,而不掩蓋原因。

僅開放 SLES 15 伺服器所需的網路流量

僅開放 SLES 15 伺服器所需的網路流量

使用 firewall-cmd 檢查活動區域,安全地允許 HTTP,保留 SSH 訪問,並驗證該規則在 SLES 15 上重新加載後是否仍然存在。

診斷 SLES PAM 登入失敗問題,避免被鎖定

診斷 SLES PAM 登入失敗問題,避免被鎖定

追溯 PAM 故障到其服務、帳戶原則或身分提供者,然後在保持管理員會話正常運作的情況下修復正確的 SLES 配置。

在 ONLYOFFICE 文件伺服器中新增字型:Docker 與 Linux

在 ONLYOFFICE 文件伺服器中新增字型:Docker 與 Linux

在 ONLYOFFICE 文件伺服器中安裝自訂字體,比較持久 Docker 掛載與直接複製,重建字體列表,並驗證結果。

使用 Restic 和 Cron 實現 Nextcloud 的自動化和一致性備份

使用 Restic 和 Cron 實現 Nextcloud 的自動化和一致性備份

將 Nextcloud 的檔案和 MariaDB 一起備份,使用 cron 安排加密的 Restic 快照,並在不危及執行伺服器的情況下驗證復原。

使用 TGZ Exports 備份和還原 Zimbra CE 郵箱

使用 TGZ Exports 備份和還原 Zimbra CE 郵箱

匯出單一 Zimbra Community Edition 信箱,驗證其 TGZ 備份,並在不覆寫現有郵件的情況下還原遺失的項目。

允許已批准的使用者使用 Keycloak 登入建立 Jitsi 會議室

允許已批准的使用者使用 Keycloak 登入建立 Jitsi 會議室

僅允許已批准的帳戶使用 Keycloak 和令牌身份驗證啟動 Jitsi Meet 會議室,同時在需要時允許訪客加入。

透過 LDAP 將 Active Directory 使用者與 ONLYOFFICE DocSpace 同步。

透過 LDAP 將 Active Directory 使用者與 ONLYOFFICE DocSpace 同步。

將 ONLYOFFICE DocSpace 連接到 Active Directory 或 OpenLDAP,安全地匯入使用者和群組,映射帳戶字段,並安排可靠的同步。

在 SLES 15 安全啟動上安裝和簽署自訂核心模組

在 SLES 15 安全啟動上安裝和簽署自訂核心模組

在不停用安全啟動的情況下載入自訂 SLES 15 核心模組。匹配正在運行的內核,對 .ko 檔案進行簽名,註冊 MOK 金鑰,並驗證載入情況。

將 ONLYOFFICE Docs 置於 HAProxy 之後而不影響編輯功能

將 ONLYOFFICE Docs 置於 HAProxy 之後而不影響編輯功能

為 ONLYOFFICE Docs 設定 HAProxy HTTPS、轉送標頭、WebSocket 逾時和執行狀況檢查,然後驗證編輯和儲存功能。