以下是如何使用 Python 從字型檔中提取文字,並將指定文字儲存為 SVG 檔案的步驟:
- 安裝必要的函式庫
 首先,你需要安裝 fonttools 和 svgwrite 這兩個函式庫。你可以使用 pip 來安裝它們:
 Bash
 pip install fonttools svgwrite
- 匯入函式庫
 在你的 Python 腳本中,匯入必要的函式庫:
 from fontTools.ttLib import TTFont
 import svgwrite
- 開啟字型檔
 使用 fontTools 開啟你的字型檔:
 font = TTFont("path/to/your/font.ttf")
 請將 "path/to/your/font.ttf" 替換為你字型檔的實際路徑。
- 提取字元
 從字型檔中提取你想要的字元。你可以使用 font.getGlyphNames() 來獲取所有字元的名稱,然後根據你的需求選擇特定的字元。
 glyph_names = font.getGlyphNames()
 selected_glyphs = [name for name in glyph_names if name.startswith("uni")]
 # 例如,選擇所有 Unicode 字元
- 建立 SVG 檔案
 使用 svgwrite 建立一個新的 SVG 檔案:
 dwg = svgwrite.Drawing("output.svg", profile='full')
- 將文字轉換為 SVG 元素
 對於每個選定的字元,將其轉換為 SVG 路徑元素,並添加到 SVG 檔案中。
 for glyph_name in selected_glyphs:
 glyph = font["glyf"][glyph_name]
 path = glyph.getOutline()
 dwg.add(dwg.path(d=path, fill="black"))
- 儲存 SVG 檔案
 最後,儲存你的 SVG 檔案:
 dwg.save()
 完整程式碼範例
 from fontTools.ttLib import TTFont
 import svgwrite
 font = TTFont("path/to/your/font.ttf")
 glyph_names = font.getGlyphNames()
 selected_glyphs = [name for name in glyph_names if name.startswith("uni")]
 dwg = svgwrite.Drawing("output.svg", profile='full')
 for glyph_name in selected_glyphs:
 glyph = font["glyf"][glyph_name]
 path = glyph.getOutline()
 dwg.add(dwg.path(d=path, fill="black"))
 dwg.save()
注意事項
請確保你安裝了必要的函式庫。
替換程式碼中的字型檔路徑為你的實際路徑。
你可以根據需要調整程式碼,例如選擇不同的字元、設定 SVG 樣式等。
這個範例程式碼將會把字型檔中所有以 "uni" 開頭的字元轉換為 SVG 路徑,並儲存到 output.svg 檔案中。你可以根據你的需求修改 selected_glyphs 變數來選擇特定的字元。
- Copilot提供較簡要的範例
你可以使用 Python 和一些庫來從字型檔中提取文字,並將指定的文字存成一個 SVG 檔。以下是步驟:
安裝所需的庫:
bash
pip install svgwrite fonttools
使用以下程式碼:
import svgwrite
from fontTools.ttLib import TTFont
# 載入字型檔
font = TTFont('path/to/your/font.ttf')
# 指定文字
text = "Hello, World!"
# 創建 SVG 檔
dwg = svgwrite.Drawing('output.svg', profile='tiny')
# 設定文字屬性
dwg.add(dwg.text(text, insert=(0, 20), font_family='YourFontFamily', font_size=20))
# 儲存 SVG 檔
dwg.save()
請確保將 path/to/your/font.ttf 替換為你的字型檔路徑,並將 YourFontFamily 替換為字型檔中的字型名稱。
沒有留言:
張貼留言