在日常工作中,我们经常需要从PDF文件中提取文本,但准确地提取PDF文本的却非常困难,提取后可能会出现文字间距混乱、字符乱码、无法复制、格式完全扭曲等问题。
下面,我们将探索 PDF 文本提取的难点,并找到 ComPDF 的解决方案。您还可以体验ComPDFKit Conversion SDK 的PDF 文本提取技术的性能。
PDF 中的字体非常复杂。要理解 PDF 解析为何如此困难,让我们先看看 PDF 文件如何存储文本数据。
PDF 中的文本使用文本运算符(如 TJ、Tj、Tf、Tm 和 Td)存储在内容流中。要正确提取文本,您需要解析 PDF 内容流、识别字体编码并将字形映射回 unicode。
○使用 ToUnicode CMap(最佳情况):如果存在 ToUnicode CMap,我们可以直接将编码字形映射到 Unicode 字符。
○使用标准编码表:如果不存在 ToUnicode 映射,我们必须使用标准编码表:
- WinAnsiEncoding →用于西方文本。
- MacRomanEncoding →在 MacOS 上使用。
- PDFDocEncoding →用于内部 PDF 字符串。
○自定义启发式和 OCR:如果没有可用的编码信息,我们可能需要:
- 根据字体类型和字节模式进行猜测。
- 如果文本存储为图像,请使用OCR(光学字符识别) 。
原因 1:PDF 文本复杂、多样、相似
由于文本书写复杂,书写系统多样,字符符号相似,导致出现以下PDF文本提取问题。
原因 2:PDF 中的文本字体发生变化
字体识别是提取 PDF 文本如此困难的另一个主要原因。由于字体种类繁多,并且单个 PDF 中可能共存数十种字体,字体处理对许多科技公司来说都是一个令人头疼的问题。如果您遇到以下问题,则可能是由于字体识别和恢复问题造成的:
原因 3:缺少 PDF 文本属性的元数据
为什么 PDF 解析如此困难?PDF 文件是页面描述格式,主要存储文本的视觉布局,而不是结构信息。因此,PDF 通常缺少表示文本属性(例如页眉、页脚、粗体、大小和颜色)的数据。这会导致在将 PDF 文本转换为其他格式时出现粗体、下划线和斜体等错误。
原因 4:文本布局重叠导致文本位置错误
PDF 中的文本通常以绘图命令的形式存储,而不是按阅读顺序存储。以下情况会导致错误地识别文本位置:
原因 5:PDF 文本不可见
从 PDF 中提取文本时,以下文本会降低提取质量:
原因 6:图像或扫描 PDF 中的文本
既然提取 PDF 文本如此困难,那么提取图像文本肯定是个大问题。OCR(光学字符识别)可以帮助识别和提取扫描 PDF 和图像中的文本。该过程通常涉及以下步骤和挑战:
识别步骤:
挑战:
原因7:PDF表格文字与单元格的对应关系
从 PDF 中提取文本和表格通常很简单,但难点在于恢复文本和表格单元格之间的关系。合并单元格、缺少边框以及单元格内的文本位置等问题使表格识别变得复杂。
原因 8:保护 PDF 不被复制
某些 PDF 会限制复制文本。嵌入或加密的内容可能需要额外的步骤才能访问和解码,然后才能提取。安全设置可以阻止工具访问内容,除非提供或绕过适当的权限。
ComPDFKit Conversion SDK 的最新版本解决了上述挑战,显著改善了 PDF 文本提取效果,可无缝将 PDF 转换为 XLSX、TXT、Excel 和 PPT。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。