问题标签 [harfbuzz]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
388 浏览

python - 无法安装 Harf Buzz - 文本整形引擎

我正在使用 harfbuzz 来塑造字体。我是python的新手。我按照Harf Buzz中给出的说明进行操作

但我无法理解这些行

确保您在LD_LIBRARY_PATH中有安装 lib 目录,这是链接器查找库所需的。


然后确保你还有GI_TYPELIB_PATH指向生成的 $prefix/lib/girepository-* 目录。

在自述文件中。因此,我无法执行src/sample.py。因为这个我得到


Traceback (most recent call last): File "sample.py", line 8, in <module> from gi.repository import HarfBuzz as hb ImportError: cannot import name HarfBuzz

提前致谢。

0 投票
1 回答
575 浏览

c++ - ld: -bind_at_load 和 -bitcode_bundle (Xcode 设置 ENABLE_BITCODE=YES) 不能一起使用

我设置了以下编译器和链接器设置,用于为我的 IOS 库构建 harfbuzz:

之后,我运行 make 命令,我得到以下错误: ld: -bind_at_load 和 -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES) cannot be used together. 以下是堆栈跟踪:

编辑:我更新的链接器和编译器设置

0 投票
1 回答
143 浏览

shapes - Harfbuzz - 文本到字形到文本

最近,我遇到了 Harfbuzz 用于文本塑造,特别是印度文本。在我之前的经验中,我使用ArabicShaping来塑造阿拉伯字符。在这种情况下,输入是预成形的文本,输出是成形的文本。

然而,在 Harfbuzz 中,我可以看到shape方法对文本进行整形并返回字形和集群。我的目标是将预成形文本转换为成形文本。我不想绘制/查看文本。我只想要一个 char[] 它将包含形状的字符(就像在 ArabicShaping 的情况下一样)。

  1. 有什么方法可以使用 Harfbuzz 实现上述目标?如果没有,是否有任何解决方法?
  2. 我是否使用 Harfbuzz 来解决正确的问题?有没有其他库可以用来实现这一目标?
0 投票
1 回答
661 浏览

c++ - 有谁知道为什么带有 FreeType 的 HarfBuzz 只是呈现“????????????”

我已经编译了这个 HarfBuzz 示例,我得到的效果图只是“??????????????????”。

我正在编译的示例是这个https://github.com/tangrams/harfbuzz-example

输出应该类似于示例的 github 页面上显示的内容,但我只是得到“???? ??? ????” 对于所有不同的文本。

这是程序的输出,所以它似乎正确地加载了示例附带的字体,尽管这些名称看起来相当通用:

这些是它试图渲染的字符串:

如果我将字符串更改为英文字符,它们会呈现正常,这让我认为字体不包含正确的语言,但据我所知,它正在加载示例附带的字体,我确实尝试更改有人告诉我的阿拉伯字体肯定包含阿拉伯字体。

我正在使用 C++17 进行编译。如果有人提到它,我已经读过它:https ://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode -and-character-sets-no-excuses/

有谁知道为什么我只是得到问号?我需要启用 UTF-8 的编译器设置吗?编译器是否有可能剥离 UTF-8 字符串?

谢谢!

0 投票
1 回答
165 浏览

python - 是否有一些 python 工具或软件工具可以访问字体内的所有组件和表格?

我的最终目标是创建一个从glyph_id到的映射unicode_chars。该映射将是有序的,glyph_id --> uni_1, uni_2, uni_3 ...因为单个字形可以映射到许多有序unicode_characters的 .

我正在寻找一些工具或库,最好是在 python 中,通过它我可以访问所有元信息,例如字体内的表格。

另外,我正在寻找一些可靠的来源,通过它我可以了解将多个 Unicode 映射到字形的过程。

我知道像 harfbuzz 这样的工具会在给定的 Unicode 字符串上生成(字形,位置)对。但我不确定它是否相反。

各种帮助将不胜感激。

0 投票
1 回答
62 浏览

python - HarfBuzz language_from_string Python自省方法不接受str

我刚刚开始使用 HarfBuzz,并已切换到使用GObject Introspection 接口来探索其 API。到目前为止,一切都很容易,但我有点困惑language_from_string,它具有以下文档字符串:

language_from_string(str:list) -> HarfBuzz.language_t

即在 IPython 中,我这样做:

在 vanilla Python 中,您可以将最后一行替换为:(print(HarfBuzz.language_from_string.__doc__)或类似的)

如果我用字符串调用此方法,例如:

我明白了

返回,而如果我先转换为代码点列表:

错误消失了,我得到了一些有用的东西。例如我可以这样做:

我得到了预期的en回报,在一个字符串中。

HarfBuzz Issue #91是关于这种方法的,但似乎并不相关。

0 投票
1 回答
199 浏览

opentype - HarfBuzz - 有没有办法获得特定字体的最大前瞻/回溯字形计数?

我们正在开发一个使用 HarfBuzz 处理 OpenType 的文本编辑程序。当用户键入时,我们正在使用 HarfBuzz 对键入后的文本进行重新分析,因此我们将获得正确的 GSUB 等等。

我们希望尽可能分析较少的文本。

我们试图找到如何使用 HarfBuzz 获取有关特定字体的信息,有关在 OpenType 表中此字体的不同查找中定义的前瞻或回溯的最大长度。

有没有办法使用 HarfBuzz 获得“lookaheadGlyphCount”和“backtrackGlyphCount”。

请参阅有关 LookupType 6 和 LookupType 8 的Microsoft 文档

编辑 :

有关更多说明,请参阅 TypeDrawers - Here上的此问题。

0 投票
1 回答
337 浏览

c - 如何使用 fribidi 重新排序双向文本

我有一个组合的英语-ASCII/阿拉伯语-Unicode 字符串,例如:

3 Unicode 阿拉伯字符 + 空格 + 3 ASCII 英文字符 + 空格 + 2 Unicode 阿拉伯字符

UTF8:"\xD9\x85\xD8\xAA\xD9\x86\x20\x31\x32\x33\x20\xD9\x8C\xD8\xA9"

UTF16: "\xFEE3\xFE98\xFEE3\x20\x31\x32\x33\x20\xFBFE\xFB8F"

对于像上面那样以联合形式显示文本,我的嵌入式设备 API 以相反的顺序接受 Unicode 阿拉伯语表示形式 B。因此,我需要将此字符串重新排序为以下形式:

重新排序的 UTF16:“\xFB8F\xFBFE\x20\x31\x32\x33\x20\xFEE3\xFE98\xFEE3”

并将其转换为 UTF8 Presentation Form B:

UTF8_FormB:"\xef\xae\x8f\xef\xaf\xbe\x20\x31\x32\x33\x20\xef\xbb\xa6\xef\xba\x98\xef\xbb\xa3"

我的问题是关于重新排序的重新排序步骤

UTF16: "\xFEE3\xFE98\xFEE3\x20\x31\x32\x33\x20\xFBFE\xFB8F"

重新排序的 UTF16:“\xFB8F\xFBFE\x20\x31\x32\x33\x20\xFEE3\xFE98\xFEE3”

我想我需要使用 Fribidi 来做到这一点。这就是我使用 Fribidi 的方式:

但输出与输入完全相同。并且 Fribidi 而不是重新排序只是将输入复制到输出。方法标志等有什么问题吗?

0 投票
1 回答
67 浏览

harfbuzz - harfbuzz 是如何支持蒙古语布局的?

我正在做一个项目。UI是用QT开发的,需要在UI上显示蒙古文,但是UI上显示的蒙古文是一个单一的蒙古文字符。QT 的布局引擎使用 harfbuzz 库。harfbuzz源码中没有蒙古文相关模块。harfbuzz是否支持蒙古文布局?如果没有,任何其他图书馆都可以工作吗?

另一个,我在帮助手册中找到了一些信息。

https://harfbuzz.github.io/opentype-shaping-models.html [“阿拉伯语整形模型支持阿拉伯语、蒙古语、N'Ko、叙利亚语和其他几种连接或草书文字。” ]

这是否意味着蒙古语处理模块包含在阿拉伯语模块中?如果是这样,如何使阿拉伯语模块支持蒙古语布局?

0 投票
1 回答
145 浏览

linux - 如何为 Linux 实现 Uniscribe

我正在尝试为 Linux 实现 Uniscribe 以显示复杂的文本,例如阿拉伯语。这似乎是一项艰巨的任务。

我需要做的是实现以下 API:

  1. 检查字符串是否复杂。
  2. 获取字符串宽度。
  3. 获取下一段。
  4. 得到下一个休息。
  5. ...

我想使用/参考开源代码来做到这一点。

我已经阅读HarfBuzz源代码好几个星期了,但没有得到它们的 API。仅使用HarfBuzz来实现它们是否可行?看来我应该使用Pango,但由于它的许可证,我不能这样做。有替代品吗?麻省理工执照没问题。

对我有ICU帮助吗?