OpenType 编程

1 投票
2 回答
722 浏览
提问于 2025-04-15 20:59

最近我问了两个问题(12),关于如何在用Python和.NET语言编写的程序中使用OpenType特性,但没有得到答案。我意识到,操作系统的文本渲染引擎是无法更改的,也不能强制它们使用OpenType。所以我现在想自己实现一个这样的程序:

  • 提供一个文本引擎,能够:
    • 从otf和ttf文件中接收字形形状,并按顺序渲染这些字形。
    • 生成所有的OTL特性。
  • 可以在其他应用程序的部分中使用,比如.NET或Python GUI库的控件和组件。

如果Python和.NET语言在这种情况下不合适,请告诉我其他编程语言或工具。
关于常见操作系统的文本渲染系统,或者设计兼容Unicode 5.02协议的文本引擎的评论和答案都非常欢迎。

2 个回答

1

你最后想做什么呢?

只是想显示一些文字,但不想用简单的Windows自带的API?那你可以看看这个链接

如果你想在渲染简单文本时配置OpenType字体特性(同一种脚本和语言),可以尝试在C++中实现这些例子,然后再和你喜欢的语言结合起来。如果你对Windows上的C++编程有一点了解,这并不是一件很难的事。

如果你想做完整的文本渲染,处理双向文本、换行等等,那你需要用到Pango/Cairo。不过在Windows上使用它们也不是一件简单的事情,但如果你尝试安装GTK#/Mono,就会简单很多。

觉得还不够?可以试试在你的项目中使用CefSharp或者类似的解决方案

你可能还会觉得这些答案有用:^ ^

2

Pango+Cairo可以满足你的需求

你可以看看 Pango,这是一个处理文本布局和渲染的工具,它可以支持OpenType字体。想了解更多,可以参考 这篇关于Pango中高级OpenType特性的博客

Pango还使用 Cairo 来渲染字体和文本块,Cairo使用类似SVG的方式来处理这些内容。

撰写回答