gpt4 book ai didi

PDF:具有不同 ToUnicode Cmap 的重复字体名称

转载 作者:行者123 更新时间:2023-12-01 11:53:53 26 4
gpt4 key购买 nike

我正在解析一个 PDF 文件并提取一些文本,我遇到了一个名为“C2_0”的字体字典,其中包含一个带有 ToUnicode 的 CIDFont(类型 0) CMap。所以,没问题 - 我有工具来解析 ToUnicode CMap 并将 2 字节字符代码映射到 Unicode 值。

但 PDF 文件后来包含另一个字体字典对象,称为“C2_0”,其中包含一个不同 ToUnicode CMap。我真的不知道我应该如何处理第二个 CMap,所以我只是猜测并结合了两个 CMap 的条目。这确实有效,并正确提取了文本。

但是,我在 PDF 引用手册中找不到任何说明这是允许的,甚至找不到解决这种情况的任何内容。我原以为重复的字体名称会导致未指定的行为,或者至少让第二个覆盖第一个或其他东西。我只是尝试将它们组合起来作为一个不太可能的猜测 - 并且很惊讶它确实有效。

有没有人有这方面的经验?有谁知道是否允许 PDF 具有重复的字体名称,这些字体名称引用具有不同 CMap 的不同对象,这些 CMap 在被 Tf 运算符调用时“组合”?

最佳答案

C2_0 是/Font 资源字典中的符号名称,具有局部作用域,仅在资源字典所属的内容流中使用。如果 C2_0 也出现在另一个/Font 资源字典中,那不是问题。
在同一个/Font 资源字典中有 2 个 C2_0 条目:
/C2_0 X 0 R
/C2_0 Y 0 R
那么你就有问题了,因为行为是未定义的,如何处理这种情况取决于你。
符号名称解析的工作原理如下:如果您在页面内容流中,请在页面的资源字典中搜索字体符号名称(Tf 操作数)。如果找不到它,请在页面树中向上搜索每个父页面节点的资源字典(如果存在)。如果您到达了页面树的顶部并且没有找到该字体,则该行为是未定义的。这时你可以实现各种回退策略:可以使用默认字体,可以在页面上搜索XObjects表单包含的资源,可以在其他页面搜索资源字典。

关于PDF:具有不同 ToUnicode Cmap 的重复字体名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8957659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com