您从 PDF 复制文本并将其粘贴到其他地方 - 结果看起来不正确。字符顺序混乱,连字如“fi”不正确。变成“fi”或者消失,单词连在一起没有空格,或者特殊字符变成问号。这是一个 PDF 文本编码问题,它有特定的原因来解释它发生的原因以及可以采取的措施。

PDF 如何存储文本 — 以及为什么会出错
PDF 主要被设计为一种视觉格式——它准确地描述了页面的外观,而不是文本的含义。 PDF 中的内部文本编码可能与标准 Unicode 有很大不同。一些 PDF 使用自定义字形映射,其中内部存储的字符代码与标准字母代码不对应 - 因此,当您复制时,剪贴板会接收内部代码而不是您看到的字符。
结构良好的 PDF 包含一个 ToUnicode 映射表,告诉查看者如何将内部代码转换为标准 Unicode 字符。当此表丢失、不完整或不正确时,即使文本在屏幕上完美显示,复制粘贴也会产生乱码结果。显示和可复制文本来自不同的系统 - 显示使用视觉字形,复制粘贴使用文本数据。
尝试 PDF OCR
无需安装。直接在您的浏览器中工作。
连字和特殊字符
连字是印刷组合——“fi”、“fl”、“ff”、“ffi”等。 —出于美观原因,两个或三个字符被连接成一个字形。在编码不良的 PDF 中,连字字形对其表示的各个字符没有 ToUnicode 映射。复制时,连字要么变成单个特殊字符(fi 而不是 fi),要么什么也没有,或者变成占位符符号。
这就是为什么从一些专业排版的 PDF 进行复制会产生缺少字母的文本 - 像“office”这样的单词。成为“办公室”因为“ffi”是连字没有可用的 Unicode 映射。这个词在屏幕上看起来是正确的;底层文本数据已损坏。
单词之间缺少空格
一些 PDF 将空格表示为位置偏移,而不是文本流中的实际空格字符 - 查看器通过移动光标位置而不是插入空格字符来呈现单词之间的间隙。复制时,位置偏移不会转换为空格字符,因此单词会一起运行:“theword”和“theword”。而不是“这个词”。
当文本间距在设计级别而不是通过标准文本编码控制时,从 InDesign 或 Illustrator 等设计应用程序导出的 PDF 中,这种情况很常见。
专栏和阅读顺序问题
在多列 PDF 中,视觉阅读顺序(向下第一列,然后向下第二列)可能与内部文本顺序(从左到右穿过整个页面宽度)不匹配。从两列布局复制文本通常会生成在各列之间逐行交替的文本,即使每个单词都是正确的,也会使其显得混乱。
这不是编码问题,而是阅读顺序问题。文本编码正确;它只是以与人类阅读方式不匹配的顺序存储。解决方法是一次从一列复制文本,而不是在两列中进行选择。
复制文本出现乱码怎么办
- 尝试不同的PDF查看器:不同的查看器以不同的方式处理ToUnicode映射。如果 Chrome 的副本产生乱码文本,请尝试从 Adobe Reader 进行复制 - 它通常会为同一个 PDF 生成更清晰的结果。
- 首先转换为Word:a PDF 到Word 转换器在转换期间重新处理文本编码。即使原始 PDF 没有,生成的 Word 文档通常也会生成干净的复制粘贴。
- 在副本上运行 OCR:OCR 工具重新读取页面图像中的可见文本并创建新的、正确编码的文本。 OCR PDF 结果可能会产生比原始编码更好的复制粘贴效果,特别是对于编码不良的专业排版。
- 使用查找和替换常见错误:如果相同的连字或字符始终粘贴不正确,请将粘贴的结果粘贴到 Word 中并使用“查找和查找”功能。更换以修复整个过程中反复出现的错误。
从源头上预防问题
如果您正在创建 PDF 并希望确保收件人干净的复制粘贴行为,请使用生成正确 ToUnicode 映射的应用程序。默认情况下,Microsoft Word 会使用正确的 Unicode 映射进行导出。 Adobe InDesign 可以根据设置导出使用或不使用正确的文本编码 - 在导出 PDF 对话框中,确保“使用文档结构进行 Tab 键顺序”并启用文本辅助功能选项。在分发之前测试导出的 PDF 的复制粘贴,以便在编码问题到达收件人之前捕获它们。
尝试 PDF OCR
无需安装。直接在您的浏览器中工作。
