我们是一小群人,致力于在印度推广 Unicode(传统编码在这里根深蒂固)。但是,当我将任何印度语言的 Unicode 文本文档转换为 PDF 格式时,我遇到了一个问题。文本按预期显示,但在复制粘贴时,部分内容变成了乱码。
我在 Win 7 上使用 inDesign CC 进行排版。我可以顺利导出为 epub 格式。但导出的 PDF 有这个问题。我也尝试过使用 Adobe PDF 打印机和 PrimoPDF 进行打印,但情况更糟。在互联网上查看 PDF 时,发现所有此类 unicode 编码的印度 PDF(可能还有所有东亚复杂文字)都存在这个问题。这是 PDF 规范的问题吗?
点击此处查看 PDFhttp://www.rajbhasha.nic.in/pdf/dolebook-4.pdf
复制任意文本并与原文匹配,您会看到字符被其他字符替换,并且出现了不必要的空白。
现在我们正在推广 unicode,因为它将使复制粘贴和搜索/索引变得更容易。这个问题完全破坏了这一点。有什么想法吗?
答案1
我使用以下方法解压了 pdfmutool clean
并查看了。问题似乎是,正如这stackoverflow 问题,很难对字体使用 unicode 编码。因此,PDF 包含的字体使用不同的编码。但是,它还包含/ToUnicode
每种字体的对象,这些对象具有从字体字形到 unicode 字符的复杂映射。
现在许多 PDF 查看器(例如xpdf
Linux 上的)似乎不关注这种复杂的映射(或者至少不关注具有如此复杂性的映射,尽管它们可能处理更简单的映射),这就是为什么在尝试复制和粘贴时会出现乱码的原因。但是,使用其他 PDF 查看器(例如mupdf
) 它确实有效,正如我所证实的。
所以问题出在 PDF 查看器上,而不是文档上。此外,PDF 和 unicode 不能很好地结合在一起,从进行翻译所需的复杂手段可以看出。
可能的解决方案:(1) 向 PDF 查看器的开发人员施压,要求他们完全支持\ToUnicode
映射。对于开源的 PDF 查看器,也许您可以自己修复它们。(2) 推广使用支持映射的特定 PDF 查看器。(3) 尝试在 PDF 中使用字形编码与 unicode 编码匹配的字体。这似乎可以通过 16 位 unicode 代码点实现(据我所知,印度字符似乎是 16 位的),但我不知道这样做效果如何,或者您应该使用哪个应用程序来生成此类 PDF。