簡體   English   中英

如何使用 python-fontforge 生成描邊字體

[英]How do I generate a stroked font using python-fontforge

我正在使用 python/fontforge 將 CAD 字體轉換為 Truetype,以便可以將其與 SVG 集成。

 import fontforge
 font=fontforge.font()
 font.strokedfont=1
 char=font.createChar(65)
 char.stroke("circular",5)
 pen=font[65].glyphPen()
 pen.moveTo(26,102)
 pen.lineTo(26,204)
 pen.lineTo(128,409)
 pen.lineTo(231,204)
 pen.lineTo(231,102)
 pen.endPath()
 pen.moveTo(26,204)
 pen.lineTo(231,204)
 pen.endPath()
 char.width=235
 font.generate('/tmp/testfont.ttf')

這給了我字母“Capital A”,但字體已填寫。

我期待看到一條從 (26,102) 到 (26,204) 的垂直描邊線,上升到頂點 (128,409),下降到 (231,204) 並垂直下降到 (231,102)。 然后是從 (26,204) 到 (231,204) 的水平筆划。

相反,我有一個塗黑的形狀。

變黑的形狀 顯示定義塗黑形狀的線條的編輯器

顯然, pen.endPath()沒有像預期的那樣打開路徑,並且charstroke("circular",5)沒有設置路徑的粗細。

誰能告訴我我做錯了什么?

您需要在繪制路徑后運行char.stroke("circular",20)方法。 (在第二個pen.endPath()之后)

在 fontforge V20201107 上測試

import fontforge
font=fontforge.font()
font.strokedfont=1
char=font.createChar(65)
pen=font[65].glyphPen()
pen.moveTo(26,102)
pen.lineTo(26,204)
pen.lineTo(128,409)
pen.lineTo(231,204)
pen.lineTo(231,102)
pen.endPath()
pen.moveTo(26,204)
pen.lineTo(231,204)
pen.endPath()
char.width=235
char.stroke("circular",20)
font.generate('/tmp/testfont.ttf')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM