PDF至Unicode cmap表还原

时间:2018-08-25 10:23:56

标签: pdf unicode ghostscript

我有多个没有“ toUnicode” cmap表的pdf文件。 cmap表的缺乏限制了我复制pdf文件中的文本。

据我所知,有可能在pdf文件中添加“ toUnicode”映射,但是在我的情况下,添加静态值不是一种选择,不同的文件具有不同的字形代码。

因此问题如下。是否有可能在Ghostscript的帮助下恢复“ toUnicode” cmap表,或者有没有其他选择?

谢谢。

1 个答案:

答案 0 :(得分:2)

否,您不能使用Ghostscript将ToUnicode CMap添加到现有的PDF文件中。

在一般情况下,除了手动以外,您根本无法做到。正如您在问题中所指出的,将构造不同的文件以使用不同的字符代码->字形映射,这意味着字符代码到Unicode的映射也将不同。

由于字符代码的选择通常基于文件中字形的使用顺序(因此,第一个字形是字符代码1,第二个字形是字符代码2等),您可以看到没有可能识别一种“适合所有人”的解决方案。

您可以使用某种OCR来扫描渲染的输出,识别每个字形并为其找到Unicode代码点。然后,您可以通过识别字形的字符代码并将其映射到Unicode值来构造CMap。

然后,您可以将ToUnicode CMap添加到PDF文件中,并使用ToUnicode CMap的对象号更新字体描述符。

Ghostscript不会为您做任何事情,而且我还没有听说过任何可以使用的工具。