文档与 OCR实用指南

Word提取TXT后表格错位?三行案例核对空值与正文边界

TXT里找得到数字,不代表数字仍属于正确的表格行。下面提供可复用的建表材料,指导你保存三行Word原件,再完成内容提取、ZIP检查和结构化交接:Pens为12,Folders未提供,Tape为2。正文与页眉页脚标记用于检查这条路线的提取范围。

纸上界面线框草图与黑色笔,作为文字和版面结构区别的资料配图
配图:Glen Carrie · Unsplash License

本次修订:补完整建表材料、正文与页眉页脚标记、实际提取ZIP检查、重建CSV及误填0的反例;练习包不含预制DOCX。

先把问题解决

保留原DOCX,在Word工具选择DOCX内容提取,下载并重新打开docx-content.zip。document.txt可用于查找正文,但不能当成通用表格协议。本例应回原表核对三条记录,保留Folders未提供;12+2=14只是已提供数量的局部和。页眉页脚标记不在这个正文提取结果内。

先确认这一入口实际交付哪些文件

进入Word工具,选择DOCX内容提取。当前入口接收DOCX文件,生成docx-content.zip,其中document.txt来自正文XML;内嵌媒体另存到images目录。它不是把每个可见页面按原布局打印成文本,也不是逐张图片的OCR。

Microsoft对WordprocessingML表格的说明把表、行和单元格分别表示为tbl、tr与tc等结构。正文里的文本只是其中一部分;去掉标记后有文字,并不代表这些关系仍然存在。

三份对象的用途
对象可以用来做什么边界与保留要求
原DOCX查看正文布局、表格及其他文档部分必须保留,不被提取副本覆盖
document.txt阅读和查找提取的正文文字不能保证完整单元格关系、样式与页面布局
images目录检查内嵌媒体资源不保证与页面位置逐一自动对应,也不完成图片文字识别

三行样本:一格空白怎样改变你的判断

这是编辑自编的非私人样本:建立两列Item和Count,三行依次为Pens与12、Folders与空白、Tape与2。原表只有Pens和Tape有数量;Folders的空白表示未提供,不表示0,也不应从下一行借一个数字。

把这份DOCX提取为文本后,逐项寻找Item、Count、Pens、12、Folders、Tape、2。即使全部找到了,也只证明文字可定位;不能把连续两行自动当成一条记录。Word允许一个单元格有多个段落,空白格也可能留下不同的空行形式。

如果你要给同事一张可计算的表,应回到原表核对行列,再记录Pens=12、Folders=未提供、Tape=2。人工参考中的两个已提供数量合计14,但不能据此宣称原表三项总量完整。

原创原表与应保留的解释
ItemCount原值交接时的语义
Pens12已有明确数量
Folders空白未提供,不能自动变0
Tape2只属于Tape这一行

把文字存在误当成表格正确

容易错位的做法

每两行取一组,遇到空白就跳过,然后把Tape配成Folders的数量或名称。

可复核的做法

按原表的行列身份重建三条记录,保留Folders未提供;逐行核对Pens12与Tape2。

空行和换行不是一个可靠的通用单元格协议。

完整建表材料:先在编辑器保存真正的DOCX

先建立只有一张三行数据表的小文档,不加入图片、批注或复杂对象。用编辑器的插入表格功能建立2列、4行(含表头),不要把用空格对齐的文本当成表格。Folders的Count单元格保留空白。

在页眉放HEADER-ONLY-28,正文表格前后分别放BODY-BEGIN-28和BODY-END-28,在页脚放FOOTER-ONLY-28。另写说明:空白表示未提供,12+2=14是已提供数量的局部和。保存为source.docx后重新打开,检查三行与四个标记;编辑器的分页和默认格式可以不同,事实内容必须一致。

表格里的“留空”是操作说明,实际Count单元格不输入这几个字,也不输入0。

需要在Word中建立的完整表格
ItemCount
Pens12
Folders(留空,不填0)
Tape2

先做一个小文档,再处理长材料

练习ZIP不含预制DOCX,包含source-table.csv、source-definition.json、双语BUILD说明、reconstructed.csv、wrong-zero.csv与expected.json。先按前节在自己的Word兼容编辑器建立原件,重新打开确认标记和表格,再进行提取。CSV参考答案是人工重建的格式,不是工具自动导出的表格。

本例没有图片,提取后的docx-content.zip预期只有document.txt,不会因为没有images目录就算失败。实际含word/media资源的文件才会导出相应媒体文件;这不是OCR,也不是把Word原样打包回来。

  1. 打开Word工具,选择“DOCX内容提取”,上传你已保存的source.docx。不要选Word转PDF,也不要把CSV改扩展名伪装成DOCX。
  2. 点击处理并下载,保存为独立的提取结果ZIP;与练习下载包区别命名。
  3. 解压提取ZIP,确认只有document.txt。打开文本,检查两个BODY标记以及Item、Count、Pens、12、Folders、Tape、2。
  4. 搜索HEADER-ONLY-28和FOOTER-ONLY-28,两者应未进入本例TXT。它们在原DOCX可见,因此这份正文提取不能称为全部页面文字。
  5. 并排看原DOCX表格,重建Item / Count / CountStatus三列:Pens / 12 / supplied;Folders / 空白 / not_supplied;Tape / 2 / supplied。
  6. 逐行比较reconstructed.csv参考答案,再检查wrong-zero.csv:即便两份数值求和都可能得到14,把Folders填0仍添加了原文没有的事实。

三行样本验收

  • Pens对应12,Tape对应2。
  • Folders的数量明确标为未提供。
  • 没有用固定每两行配对替代原表核查。
  • 已提供数量的局部和14与完整总量的未知分开记录。
  • 原DOCX、提取包和重建表有不同文件名。

正文XML之外的内容,不能默认算已提取

当前这条提取路线读取word/document.xml,不遍历所有页眉、页脚、批注等文档部分。文档还可能含文本框、修订、嵌入对象或其他复杂结构;没有逐项核对时,不把输出称作“全部文字无遗漏”。扫描图片中的字也不会因为出现在媒体目录就自动变成正文文本。

素材与页面布局的区别可继续阅读Word内嵌图片与可见裁切的关系。如果要把核对后的数据填回文件,参考Excel或CSV填充Word模板,先验收一份,不用错误表格批量制造新文档。

按后续任务保留材料

只是检索正文

保留TXT与原文件,关键命中回原文定位。

要保留页面外观

另用适合布局保留的导出方式,并检查页面。

要计算表格

从原表建立明确行列与缺失值约定,不能只依赖纯文本。

提取失败与“提取完整”是两个判断

旧的.doc文件、加密或损坏文件可能不适用于此入口。即使DOCX格式可读,也不等于每一种复杂对象都已得到保留;先用小样本确认当前行为,再记录长文档里尚未验收的部分。处理在浏览器本地完成,保留原件以便重新检查。

这份教程给出的是可复用的材料与核对方法,不承诺任意Word版本和文档结构的无损转换。需要保留证据或正式档案时,原DOCX和接收方要求仍是交付依据,TXT只承担已经核实的用途。

本例的交付依据是你实际保存并重新打开的原DOCX、实际提取ZIP和逐格核对后的重建表。练习包提供完整建表材料,便于在自己的编辑器复现;不同编辑器的分页可以不同。复杂对象、加密文件或长文档需要另外验收,不能把三行小样本的结果推广为任意Word都无损。

算出14仍可能交错:用逐格核对补上总量检查

reconstructed.csv的Count列保留空白,另用CountStatus说明未提供。这个状态列是人工核对后新增的交接字段,不是DOCX提取器自动识别的语义。先写清新增字段的含义,再交给下一位处理者,避免他把空白当作导出漏格。

wrong-zero.csv故意把Folders写成0、状态写成supplied。它仍有三行,已知数字和仍是14,所以“行数正确+合计正确”两项都不能抓出这次错误。必须比较Folders原单元格和缺失状态。确认原材料缺少数量时,保留未提供并追问资料,不从其他行借值,也不以0补齐。

遇到顺序或来源不明的TXT,停止自动按固定行数配对,回原DOCX重建。找不到原件时只能交付可定位文字及未完成核对的说明,不能制造完整表。保留source DOCX、实际提取ZIP、人工重建CSV和核对说明;单独下载练习包或成功提取不等于完成这四项验收。

三项检查各自能发现什么
检查正确参考错误补零副本能否区分
数据记录数33不能
已提供数值和1414不能
Folders原值与状态空白 / not_supplied0 / supplied能,需回原表
完整三项总量未知被错误解释为14不能用局部和代替

常见问题

空白能不能统一写成0,方便求和?

只有原任务明确把空白定义为零时才能这样处理。本例空白是未提供,写0会添加原文没有的事实。

TXT里换行保留得很好,就能按固定行数恢复表格吗?

不能普遍这样做。单元格可含多个段落,也可能为空;需要原表或明确的结构化分隔协议来判断列关系。

ZIP里的图片数量与文档里看到的图片次数一定相同吗?

不能保证。媒体文件与页面上的引用次数不是同一对象;一个资源可能被引用多次,也可能存在未使用资源,应对照原文核查。

参考资料与延伸阅读

按步骤开始处理

进入对应工具,预览处理结果,检查导出的文件。

继续阅读