PDF 中的文本在复制时变成乱码,但显示正常

col*_*e16 4 pdf printing unicode adobe-indesign adobe-acrobat

我们是一个推动 Unicode 在印度传播的小团体(这里的传统编码根深蒂固)。但是,当我将任何印度语言的 unicode 文本文档转换为 PDF 格式时遇到问题。文本按预期显示,但在复制粘贴时,部分内容会变得乱七八糟。

我在 Win 7 上使用 inDesign CC 进行排版。我可以导出为 epub 格式就好了。但是导出的PDF有这个问题。我还尝试打印到 Adob​​e PDF 打印机和 PrimoPDF,但情况变得更糟。在互联网上查看 PDF 时,结果发现所有此类 unicode 编码的印度语 PDF(以及可能所有东亚复杂脚本)都存在此问题。这是 PDF 规范中的问题吗?

在此处查看 PDF http://www.rajbhasha.nic.in/pdf/dolebook-4.pdf

复制任何文本并与原始文本匹配,您会看到字符被其他字符替换,不必要的空白已悄悄进入。

现在我们正在推广 unicode,理由是它会使复制粘贴和搜索/索引更容易。这个问题完全破坏了这一点。有任何想法吗?

dir*_*rkt 5

我解压了 pdfmutool clean并查看了。问题似乎是,如this stackoverflow question所述,很难对字体使用unicode编码。因此,PDF 包含的字体使用不同的编码。但是,它还包含/ToUnicode每个字体的对象,具有从字体字形到 unicode 字符的复杂映射。

现在许多 PDF 查看器(例如xpdf在 Linux 上)似乎不注意这种复杂的映射(或者至少不注意具有如此复杂性的映射,尽管他们可能会处理更简单的映射),这就是为什么您会得到垃圾尝试复制和粘贴时。但是,mupdf正如我所确认的,对于其他 PDF 查看器(如),它可以工作。

所以问题出在 PDF 查看器中,而不是文档中。此外,PDF 和 unicode 不能很好地结合在一起,正如您从进行翻译所需的复杂方法中看到的那样。

可能的解决方案:(1) 向 PDF 查看器的开发人员施压,使其完全支持\ToUnicode映射。也许自己为开源修复它们。(2) 促进使用与映射配合使用的特定 PDF 查看器。(3) 尝试在 PDF 中使用字形编码与 unicode 编码匹配的字体。这似乎可以使用 16 位 unicode 代码点(据我所知,印度字符似乎是 16 位),但我不知道这将如何工作,或者您应该使用哪个应用程序来生成此类 PDF .