建立一个调整字距和字距的软件

2024-04-29 09:55:18 发布

您现在位置:Python中文网/ 问答频道 /正文

正如标题所示,我想构建一个可以读取.ttf和.otf文件的软件,然后允许用户调整字距、字符宽度和字符间距。我知道freetype项目,但它是用C编写的,我只能用C和Python编写代码。编写.otf和.ttf逻辑有多困难?在

谢谢 变形


Tags: 文件项目代码用户标题宽度软件逻辑
1条回答
网友
1楼 · 发布于 2024-04-29 09:55:18

您问到编写软件读取TrueType(.ttf)和OpenType(.otf)文件有多困难,允许调整字距、字符宽度和字符间距表。好吧,我告诉你。这很难。在

微软排版的The OpenType Font File是对TrueType和OpenType字体文件高层结构的一个很好的介绍。内部结构是一些全局索引和校验和字段,后面是一些“表”,每个表都有自己的内部结构。您将需要编写代码来解压这个全局结构,解析和修改要更改的表,然后重新构建全局结构并重新计算校验和。在

为了让用户修改紧排、字符宽度和字符间距,您可能至少需要修改^{}^{}和{a4}表。对这些表的更改可能会影响其他表中的值。在

此外,文本引擎和应用软件对OpenType或TrueType字体的内容有自己的期望。这些相互作用是复杂的,并不总是有很好的记录。我希望所有有能力,可靠的字体,与苛刻的文本布局软件工作,有详细的内容,反映了大量的诀窍和痛苦的经验。在

如果您认为学习C语言以使用现有的freetype代码是很困难的,那么就等着调试一下为什么用工具修改的字体在文本布局软件中不起作用。在

你不会说你想对字体做什么样的修改。为什么不买现有的软件,而不是自己做呢?有一些应用软件,比如FontLab's TypeTool,它可以让你做所有你需要的字距、字符宽度和字符间距的编辑。当然,这需要钱,但要考虑一下您的时间值多少钱,以及您需要多少时间才能使您的代码运行得足够好以满足您的需要。在

如果您真的想继续编写自己的代码,您可能会发现Adobe Font Development Kit for Opentype (AFDKO)很有用。祝你好运。在

相关问题 更多 >