开放式编程

Recently i asked two questions (1 and 2) about using OpenType features in programs written by python and .net languages, but didn't get an answer. i realized there is no way to change text rendering engines of operating systems, or force them to use OpenType. so now want to implement my own. such a program that:

  • provides a text engine that
    • receives glyph shapes from otf and ttf files and renders them in sequence of glyphs in text.
    • generates all of OTL features
  • can be used in other parts of applications like controls and components of .NET or python GUI libraries.

if python and .net languages are not suitable in this situation, aware me about other programming languages or tools.
comments and answers about text rendering system of common Operating Systems, or designing text engines compatible with unicode 5.02 protocol are welcomed.

#0

Pango+Cairo does what you want

You might want to check out Pango which is a text layout and rendering engine which can handle OpenType ... see This blog entry on advanced opentype in Pango.

Pango also uses Cairo for rendering fonts, blocks of text using an SVG like backend.

#1

What do you want do at last?

Just rendering some text but NOT with simple Windows provided API? Have a look at this.

Configuring fonts OpenType features on rendering for a simple text (same script and language)? Try to implement one of this examples on C++, then bind to your favorite language. It is not a very hard task if you know a bit about C++ programming on Windows.

Doing a whole text rendering thing? Handling bidi, line wrapping and ...? Well, your answer is Pango/Cairo, but bringing them on Windows is not an easy task either, but that would be easy if you try and install GTK#/Mono on Windows.

Is not sufficient? Try to use CefSharp or similar solutions on your project.

You may find these answers useful also: ^ ^

推荐文章

多次调用对象的方法,而不是多次构造对象

多次调用对象的方法,而不是多次构造对象

推荐文章

Coldfusion 8:结构到结构的数组

Coldfusion 8:结构到结构的数组

推荐文章

如何在iPhone中为常量字符值追加一个整数?

如何在iPhone中为常量字符值追加一个整数?

推荐文章

Django/jQuery-读取文件并作为文件下载提示传递到浏览器

Django/jQuery-读取文件并作为文件下载提示传递到浏览器

推荐文章

在Mercurial(hg)中,如果发出“hg push”,您如何看到将被推送的文件列表?

在Mercurial(hg)中,如果发出“hg push”,您如何看到将被推送的文件列表?

推荐文章

在顶部放置标签的内联表单字段

在顶部放置标签的内联表单字段

推荐文章

使用代码点火器控制器和视图创建foreach循环

使用代码点火器控制器和视图创建foreach循环

推荐文章

哪种硬件适合体面地使用Vs.NET 2008/2010?

哪种硬件适合体面地使用Vs.NET 2008/2010?

推荐文章

asp.net sharepoint开发

asp.net sharepoint开发

推荐文章

是否可以查询Magento数据库并在Magento之外显示产品属性?

是否可以查询Magento数据库并在Magento之外显示产品属性?

推荐文章

适用于Ubuntu的Android API目标级别5和6

适用于Ubuntu的Android API目标级别5和6

推荐文章

如何使用I/O完成端口处理来自重叠I/O的部分写入完成

如何使用I/O完成端口处理来自重叠I/O的部分写入完成

推荐文章

卡莱尔:动画结束时回拨?

卡莱尔:动画结束时回拨?

推荐文章

带两个子查询的MySQL更新

带两个子查询的MySQL更新

推荐文章

Erlang Facebook示例

Erlang Facebook示例

推荐文章

UITableViewCell中元素的自动释放-内存泄漏

UITableViewCell中元素的自动释放-内存泄漏