1. OTF 是什麼?
OTF (OpenType Font) 是由 Adobe 和 Microsoft 共同開發的字體格式,
.ttf
(TrueType 字體)的功能得到擴展並包含高級排版功能。
- ✅ 各種字體功能(連字、替代字元等)
- ✅ 支援 Unicode
- ✅ 比
.ttf
更具通用性(特別是在專業設計工具中更受歡迎)
在 Ubuntu 中,OTF 通常被廣泛用作系統或 PDF 渲染字體。
2. 查看 Ubuntu 中安裝的 OTF 字體
可以在終端中使用以下命令確認:
fc-list | grep "\.otf"
您也可以使用特定字體名稱進行過濾:
fc-list | grep "Nimbus Sans" | grep "\.otf"
3. 想在網頁上使用系統字體時
在網頁上無法直接使用安裝在系統中的字體。
因為訪問網站的客戶端計算機可能沒有該字體。
→ 因此,字體必須由網絡服務器提供,最有效的格式是 .woff2
。
4. OTF → WOFF2 轉換是關鍵!
📦 安裝轉換工具
sudo apt install woff2
🔄 轉換命令
woff2_compress YourFont.otf
→ 結果:YourFont.woff2
自動轉換腳本
#!/bin/bash
export LC_ALL=C
# [1] 目標字體名稱
read -p "輸入要轉換為 woff2 的字體:" FONT_NAME
# [2] 設置結果保存路徑
DEST_DIR="$HOME/fonts/$(echo $FONT_NAME | tr ' ' '_' | tr '[:upper:]' '[:lower:]')/woff2"
# [3] 確認轉換工具
if ! command -v woff2_compress &> /dev/null; then
echo "❌ 找不到 'woff2_compress' 命令。請安裝後使用:"
echo " sudo apt install woff2"
exit 1
fi
# [4] 創建結果資料夾
mkdir -p "$DEST_DIR"
# [5] 從系統字體列表中提取所有 .otf 並且包含 FONT_NAME 的路徑
echo "🔍 正在搜索 '$FONT_NAME' 的 .otf 字體..."
font_paths=$(fc-list | grep "$FONT_NAME" | grep "\\.otf" | cut -d: -f1 | sort | uniq)
if [ -z "$font_paths" ]; then
echo "❌ 找不到與 '$FONT_NAME' 相關的 .otf 字體。"
exit 1
fi
# [6] 執行轉換循環
for font_file in $font_paths; do
base_name=$(basename "$font_file" .otf)
output_file="$DEST_DIR/${base_name}.woff2"
if [ -f "$output_file" ]; then
echo "⚠️ 已存在:$output_file → 跳過"
continue
fi
echo "🔄 正在轉換:$base_name.otf → $base_name.woff2"
if ! cp "$font_file" "/tmp/${base_name}.otf"; then
echo "❌ 複製失敗:$font_file → 跳過"
continue
fi
woff2_compress "/tmp/${base_name}.otf"
mv "/tmp/${base_name}.woff2" "$output_file"
rm "/tmp/${base_name}.otf"
echo "✅ 保存到:$output_file"
done
echo "🎉 所有轉換完成!保存位置:$DEST_DIR"
有需要的朋友們可以試用我寫的上面這個腳本,非常好用。
5. 如何在網頁上使用轉換後的 woff2 文件
將其放入網頁項目的 static/fonts/
目錄中,然後在 CSS 中聲明:
@font-face {
font-family: 'Your Custom Font';
src: url('/static/fonts/YourFont.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
現在可以在 HTML 中這樣使用:
<body style="font-family: 'Your Custom Font', sans-serif;">
您好!這是自定義字體。
</body>
6. 總結
項目 | 要點 |
---|---|
.otf 字體 |
在 Ubuntu 系統中大量安裝 |
在網頁上使用 | 由於客戶端 PC 上沒有,因此需要轉換為 .woff2 |
優化方法 | 通過 woff2_compress 轉換後在 static 中提供 |
結果 | 快速的字體加載,可以反映專用字體設計 |
對於希望更緊密連接 Ubuntu 系統與網絡服務的開發者來說,
otf → woff2
的轉換是一個值得掌握的重要工具。💪
Add a New Comment