Introduce: IEPI.BIATranscribe 图像表格拓写工具

应用场合


数据表格是学术、文案工作中常用的表述形式。我们经常需要从第三方获取所需的数据。有些时候这些数据并非以可直接编辑的形式(如电子表格文档),而是以打印件或者扫描件的形式提供。假如需要对数据进行进一步的使用,可能需要手工将打印件或扫描件誊写为电子文档。在这方面有许多现有工具及方案可供选择:

  • 对于比较清晰的图像,使用OCR软件执行文本识别;
  • 纸质文档可以通过LENS拍摄工具自动展平;
  • 对于单个内容有限的表格,可直接创建电子文档。

然而当需要处理的图像不够清晰,以至于OCR识别有误,尤其当数据量大时,成熟的工具则无用之地。在这种情况下,也许手工誊写是唯一的选择。IEPI.BIATranscribe (以下称BIAT)即为此情况开发。

以一次关联特定文件夹中多个位图格式图片,并依照用户指定的方式筛选和排序,将每个图片视为一个表格页。在编辑窗口中,用户设置编辑网格的行列数、位置等,并调整图片角度对齐网格,随后直接在网格中填写对应位置的内容。当所有页面数据输入完成后,通过导出定义保存为csv文件。BIAT能够以项目文件的方式保存文档页面设置和所录入的数据,以供长时间和多地点编辑。

 

开始使用


准备文档图像

将要拓写的图像放置于特定的文件夹中,修改图像的名称使其包括页码。对于单个表单图像也是相同要求。

一般来说,若决定使用BIAT,说明需要处理大量表格。我们以一PDF文档为例说明如何准备图像文件夹。

该文件取自BIA报告(德国职业安全联合会发布的粉尘爆炸性参数测试数据报告)的1.1物料分组,因此文件名为group1_1.pdf。也许你已经发现BIAT软件的名字即来源于此——它最初要处理的数据表格。

本节将持续使用该PDF示例文件。原始数据、程序和其他附件均在本文最后一节提供下载。

在开始操作前,应确保PDF文档不包含除表格之外的多余页面,如果有多余的页面,会破坏BIAT内置区分奇偶页的机制。但若不区分奇偶页,则可以保留多余的页面,在编辑时直接标为“已完成”即可,程序将自动忽略空白数据。

示例PDF文件的多余页已经去掉。

使用Acrobat打开PDF文件,选择菜单项 “文件 - 另存为其他 - 图像 - png“ ,将整个文件导出为图片。

Acrobat将自动为每个图片添加序号,图片文件名形如 group1_1_页面_xxx.png。若页面过多,也可以将其分成多份放在不同的文件夹中。只需注意,若要区分奇偶页,每个文件夹中的图片文件数量应当是偶数个。

 

加载图像

BIAT是可拷贝移动的.net应用程序,并且支持相对路径的项目加载。如果需要多处办公,推荐将文档图像和程序目录放置在较近的位置,便于整体移动。

程序启动,界面如下

首先观察“项目配置”的“正则捕获格式”,该设置使用正则表达式对给定文件夹中的文件进行过滤,只有文件名匹配的文件会被列出。

“页面排序依据捕获索引” 指定在文件名正则匹配时捕获的分组索引,该索引对应的捕获内容将作为程序对页面排序的依据。

针对此例,正则表达式捕获两个分组,第一个是 group_1_1,即PDF文件名,第二个是Acrobat导出生成的页码。因此按此设置,图像页面将按照页码值排序。

在“浏览到目标文件夹”处,点击“浏览”,选择保存有文档图像的文件夹。文件夹中符合筛选的文件将被列出。

 

查看页面

如上文件被添加到列表后,可查看特定页面状态。此时切换到“数据拓写”可见加载图片以及浮在其上的表格。

通过上方的导航工具可切换页面,也可直接输入页码并按下回车键跳转(输入的数值应在页码范围以内)。

通过拖动下方的滑动块对编辑区域进行缩放,以方便编辑。

在“项目配置”的文件列表中,也可单击列表项实现页码跳转,这在查看页面状态、继续编辑时很有用。

 

定义网格

“数据拓写”左侧边缘折叠区域“编辑区”可以展开,其中包含“页面定位”和“网格设置”两部分。

在页面视图中,文档图片在下层显示;输入网格在上层布局。通过“编辑区”设置,可以使网格完全对齐到图片中的表格范围。随后只需在相应单元格中输入下层图像位置的文本,即可完成该页的数据拓写。

在定位之前,首先要定义页面网格,观察“网格设置”,包含奇数页和偶数页两组设置,每一组都包含边距、行列数、行高、列宽的设置。

定义网格一般按以下顺序:

  1. 按照文档图像内容设置行数和列数;
  2. 设置边距,使网格大致对应表格范围;
  3. 调整行高、列宽,使单元格布局与表格基本一致。

这些设置参数中,列宽需要单独说明:它由多个数字通过半角逗号相连而成,每个数字代表第n列所占的比重;一般数字的个数应与列数一致,但也可以不一致;若数字数量少于列数,则实际不足部分用1补足进行表格绘制;若数字数量多于列数,多出的部分将被忽略。

在示例中,奇数页列宽为 3.75,0.93,0.9,0.9,0.9,0.9,0.9,0.9,0.9,1.2,1.2 ,这基本符合页面图像中表格列宽的分布。你可通过不断调整直至达到满意效果。

 

页面定位

虽然页面图像和网格的位置均可以设置,但是考虑到网格的正交性、网格页边距能方便页面对齐、图像的不规范,笔者还是推荐在“页面定位”中调整页面图像使其对齐定义好的网格。

当然,网格和图像的调整可以交互进行。

展开“页面定位”后,网格变为不可用(即无法输入内容),以便使用鼠标操作定位。

所谓的图像定位,实际上是通过调整页面图像矩形的4个角位置,自由拉伸文档。有两种方式进行角顶点的坐标设置:直接输入和鼠标点击。

直接输入坐标的方式要求你了解本程序的图像定位方式(关于WPF 3D非仿射变换)以及相关配置(参考“应用配置”)。

推荐使用鼠标方式设置图像4角位置。你会发现有箭头标记的4个按钮,分别对应左上、左下、右上、右下4个角。点击其中一个,便进入相应角的位置设置模式。在设置模式下,在页面和绿色背景范围内点击鼠标左键,将点击鼠标的位置设置为文档图像的相应角的位置。

你可通过点击连续调整单个角的位置,满意后点击其他方向箭头的按钮,继续调整其他角位置,或者点击标有X的按钮结束调整。在调整中,也可以单击鼠标右键结束调整,取消设置模式。

注意:折叠“页面定位”编辑区不会自动取消设置模式,你必须显式点击X按钮或右击鼠标。

由于扫描文件每页的图像变形都不一样,因此可能需要对每个页面实施定位,此时应保证网格定义的一致性,因为网格的定义只区分奇偶页。就是说网格定义只有奇数页、偶数页两套设置,而页面定位对于每一页都有独立的设置。

鼠标定位的操作很方便,因此每一页的定位不会花费太多时间。

 

输入内容

一旦网格和页面位置定好,网格单元格与底层页面中的表格的重复程度便会很好,此时只要在相应位置抄写表格内容,你甚至不用思考所抄写的内容是什么。

当然,如果有需要,也可以在单元格上填写任意内容。

输入时,可通过键盘的上下方向键将焦点移到上方或下方单元格,按住ctrl后使用键盘的左右方向键将焦点移动到左侧或右侧单元格。

当一页的表格拓写完毕,勾选选项卡右上角的“标记为完成”,则当前页变为不可用,文件列表的状态也随之更新。

当所有页面都已标记为完成时,方可进行“表格导出”操作。

 

保存和加载配置

可以通过“文件 - 保存项目配置“将当前的所有配置保存到文件(后缀为.btp)。保存的内容包括图像文件夹位置、筛选规则、网格定义、各页面定位、输入的数据及状态、以及导出CSV的设置。

要继续之前的工作,通过“文件 - 打开项目配置“加载之前保存的配置。

需要注意的是,当页面过多(如几百页)时,单个配置文件中保存的数据也会很多,这会对程序的加载速度产生一定影响。可以将页面适当分组处理以减少对加载速度产生的效应。

 

表格导出

在所有页面都标记为完成后,切换到“表格导出”选项卡进行导出设置。

BIAT可将以录入的内容导出为逗号分隔文件(.csv文件),供其他电子表格程序进一步使用。

在该选项卡中,你可以输入自定义文本作为导出csv文件的附加头。这部分文本将在数据之前写入文件,一般是对表格的说明或标题等。

通过勾选“区分奇偶页”,导出时将前后两页视为一张完整表格,在列定义中O和E(分别代表奇odd和偶even)区别对待。

导出时,BIAT并非直接将内容按照输入的网格定义导出,而是可以自定义要导出的列。从“备选列”中选择要导出的列标记,点击右箭头将其添加到“定义列”中。

备选列中的备选项除BLANK代表空列以外,其他项与网格定义的列数有关。例如奇数页网格有11列,则备选项中会有 O0~010;偶数页有10列,则备选项中会有E0~E9。

另外还可点击左箭头按钮,从“定义列”中移除项;或点击上下箭头调整项的排列顺序。

点击“C标记按钮”可增加常量列。

 

下载


posted @ 2017-02-03 17:18  崩溃侠  阅读(603)  评论(0编辑  收藏  举报
友情链接: Heroius' Ideas 沈阳因斯福环保安全科技有限公司 东北大学工业爆炸防护研究所