Acrobat 的“导出”功能如何在没有有意义的 TTF 字形映射的情况下解释文本?

问题描述

我有一个 PDF,其中复制/粘贴会产生垃圾,查看内部结构,文本是用典型 ASCII 范围之外的值定义的。字符值根据它们出现的顺序依次分配 0x01、0x02 等。这意味着复制/粘贴和 pdftotext 之类的工具不起作用。它说它是用 ghostscript 制作的,但我认为这是通过我不太熟悉的 cups 制作的。

我的问题是,为什么 Acrobat 的“导出”功能在导出为纯文本或 HTML 时可以重现完全可读的文本?

我想我有一个线索,但我知道的不够深入。

我注意到 PDF 流数据中遇到的第一个单词以“Think”开头,这些字节被分配为 0x01、0x02 等。

我从 PDF 数据中裁剪了该字体并运行 ttfdump,其中 cmap 表对于平台 ID 1 如下所示(ID 3 的值相似):

Char   1 -> Index 55
Char   2 -> Index 75
Char   3 -> Index 76
Char   4 -> Index 81

如果这些映射到 ASCII 代码,它们不会直接对应,但它们之间的距离是有意义的 - 'T' 比 'h' 小 20,而'h' 比'i' 小 1,依此类推。

>

所以我的第一个问题是,Acrobat 是否可能使用它来导出值?如果解释起来很简单,那么后续将更多地了解如何使用这些值。我浏览了字体格式规范,但它很长,我不确定要关注什么。

附言如果需要,我可以提供字体,但不能提供具有私人数据的 PDF(我们不生产也不拥有它)。我也不认为在这种情况下编写自动提取文本的程序是明智的,但我正在尝试为不可避免的“但 Acrobat 可以做到!”收集信息。投诉。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...