为什么当我在 PDF 中选择相同的文本时,Google Chrome 和 Adob​​e Acrobat Pro 会将不同的文本复制到剪贴板?

为什么当我在 PDF 中选择相同的文本时,Google Chrome 和 Adob​​e Acrobat Pro 会将不同的文本复制到剪贴板?

在 Adob​​e Acrobat Pro XI 中,选中以下文本时按Ctrl+C

在此处输入图片描述

将复制以下内容到剪贴板:

Training
1. Collect
a
set
of
representa8ve
training
documents

在 Google Chrome 中,选中以下文本后点击Ctrl+C

在此处输入图片描述

将复制以下内容到剪贴板:

Training+
1. Collect+a+set+of+representa8ve+training+documents

我使用 Windows 7 SP1 x64 Ultimate。PDF 文件可以访问这里(上面的截图显示的是第 16 页)。

为什么当我在 PDF 中选择相同的文本时,Google Chrome 和 Adob​​e Acrobat Pro 会将不同的文本复制到剪贴板?

答案1

该问题已经以创建方式出现在原始文档中。

看起来好像原始演示文稿是在 Mac 上使用 PowerPoint(还有什么……)创建的(演示文稿也可能是在 Windows 上创建的,然后带到 Mac 上创建 PDF)。不涉及 OCR。

PDF 创建时使用的是 Apple 工具,而这些工具似乎在处理连字符方面存在问题。它没有使用“主”字体文件中的连字符,而是创建了另一个包含连字符的子集,但无法正确编码 Unicode 代码,结果是将编码转置为“主”字体编码会产生字符 8。

众所周知,在 PDF 中,文本是放置在画布上的一组“单词”,其中“单词”由空格分隔。在基本 PDF 中,单词之间形成句子的连接并不存在。对于复制,PDF 查看器要么进行一些启发式操作来确定这些“单词”是否属于一起,要么使用结构信息(如果存在)。Chrome 的逻辑与 Acrobat 的逻辑不同,这就是差异出现的原因。

实际上,Acrobat XI 在上下文菜单中有一个选项,选择“带格式复制”,该选项(粘贴到 BBEdit 后)可导致:

"Training"
"1.    Collect a set of representa8ve training documents"

此选项显然使用更多逻辑来创建句子。但连字符是错误的,因为它无法正确重新创建。

结论是,创建不良的 PDF 会导致在使用不同的 PDF 查看器尝试重新利用内容时出现差异……

答案2

您可以从多种类型的源文档获取 pdf。如果您从文字处理器直接保存的内容开始,pdf 将包含漂亮的可编辑文本。如果您从页面图像开始,pdf 将包含图片,如果没有 OCR,则无法编辑该图片。介于两者之间的是排版文档。它们包含文本,但所有内容都经过硬格式化以控制页面上的精确外观。尝试编辑这些内容,甚至清理它们以进行编辑,都可能是一场噩梦。

在本文档中,单词之间的间距由制表符(或解释为制表符的特殊字符)而不是空格控制。 representative 中奇怪的“8”可能是由于使用了连字(特殊编码或字距调整对,用于缩小“t”和“i”之间的间距)。如果不同的查看器以不同的方式处理排版控制代码,这并不奇怪。

相关内容