在 PPT 和 Word 排版里面,小伙伴会接触到 Kerning 字间距这个属性,本文将告诉大家这个属性的功能,以及为什么需要在 OpenXml 里面设置这个属性

其实这个属性的实际作用需要从文本排版知识开始说起,在 Latin 拉丁语,如英文,这些语言的文本排版惯例里面,因为是由多个独立的字符构建的单词。因此多个字符之间的距离,也就是本文说的 Kerning 字间距将会影响阅读者的阅读效率。甚至听说(无依据)古老的时候印刷社有这样一个职业,决定每个单词的每个字符的间距,让读者看起来爽

在当前数字化的时代,自然做排版软件也需要考虑这一点,如在排版 AVATAR 这个经典单词的时候,将会发现如 Word 等成熟的排版软件,在微软雅黑字体下将会更改每个字符的默认间距,而且是依据前后字符的不同而不同

在第一行是经过优化的文本,可以看到 AV 这两个字符的间距和 AR 是不相同,而 AV 和 AT 都会有两个字符重叠,此时在英语语系阅读第一行字符会感到舒服

而第二行就是一些简单排版软件,这些软件每个字符都是独立排版的,没有根据前后的字符决定字间距,此时的排版看起来没有第一行好

而在 OpenXML 的 Kerning 是可以让排版工作者根据需要修改默认的字体间距的功能。因为排版软件有时候也会猜错规则,如有时候需要表达一些特殊的词,这些词很多都是宗教相关,此时需要修改字间距,让字符比较紧等

而字间距的值是由字体表决定的,这将会根据不同的字体而不同,因此想要做到和 Word 一样强的排版,就需要解析字体表,同时了解语言规则

更多请看 Office 使用 OpenXML SDK 解析文档博客目录


本文会经常更新,请阅读原文: https://blog.lindexi.com/post/dotnet-OpenXML-%E6%96%87%E6%9C%AC-Kerning-%E5%AD%97%E9%97%B4%E8%B7%9D%E7%9A%84%E4%BD%9C%E7%94%A8.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

无盈利,不卖课,做纯粹的技术博客

以下是广告时间

推荐关注 Edi.Wang 的公众号

欢迎进入 Eleven 老师组建的 .NET 社区

以上广告全是友情推广,无盈利