基于PDF文件解析的图谱数据处理方法
文献发布时间:2023-06-19 11:08:20
技术领域
本发明涉及实验室报告书报告管理领域,是基于PDF文件解析的图谱数据处理方法。
背景技术
图谱作为科学研究的重要手段,在分析实验中的作用巨大。图谱所反映的数据之间特征性的相关性直接或间接的反映出了被研究对象特定的物理化学性质,因此图谱解析作为现代实验室的主要研究手段异常重要。
现有lims系统(实验室信息管理系统)及SDMS(科学数据管理系统)多是对图谱中的文字性记录进行采集,对图谱的采集支持较差。相关报告通常是采用工作站或专用软件的报告程序生成的报告文件作为附件提供。
造成以下问题:1、图谱中的大量信息未被有效运用。2、所生成的报告格式不能统一。
PDF(Portable Document Format,便携式文档格式)是一种独立于硬件、操作系统、应用程序的电子文档。上述的图谱数据都可以通过虚拟打印的方式实现图谱报告的输出,生成图谱的PDF文件。PDF文件因其独特的优点成了事实上的实验室通用报告文本。
发明内容
发明目的:本发明针对数据采集存在的问题,提出了一种图谱数据转化的方法,通过不同的解析方式,将PDF格式的图谱内容转化为可通过绘图软件重新编辑的数据,实现图谱的抓取和使用。
技术方案:PDF是从PS语言(Postscript语言,即页面描述语言)发展而来的一种结构化的文档格式。通过页面描述指令对指定区域进行着色绘制页面,PDF支持5种类型的的位图对象(Graphics Object)包括:路径对象(Path Object),文本对象(Text Object),图像对象(Image Object)和外部对象(External Object:XObject)。
PDF文件中的图谱通常是采用路径对象(Path Object)形式实现,其中直线(Line),曲线(Curve),长方形(Rectangle)都属于路径对象(Path Object)。
PDF文件在绘制图谱时,会根据图谱的原始数据基于页面位置布局对进行处理。所绘制的图谱的坐标为在PDF页面中的位置,其坐标为“相对坐标”(相对于页面位置),会因为图谱报告排版的变化而发生变化。
随着信息技术的发展,目前工具已经可以实现对PDF文件中各类资源的解析,更进一步的可以实现对路径对象的识别和位置确定。这就为本发明的实现创造了必要的条件。
图谱中各类对象的属性包括位置、文本、颜色等属性都可以通过相应的解析工具进行解析,通过对相关解析结果进行识别、判断、分类,就可以将PDF文件中的图谱转化为包含位置信息,文本,功能的数据进行储存,上述数据又可以被基于矢量绘图方法的绘图软件合成,重现,从而实现图谱数据的调用。
由于采用了上述技术方案,本发明的有益效果为:通过对PDF中图谱内容的识别,读取和再合成,可以统一实验室的报告形式,无需通过附件形式或截图形式附加图谱;既可以实现图谱展示内容的个性化定制,又不减少图谱的特征性,有助于形成更规范的报告文本。
附图说明
此处的附图用于解释具体实施例,以便于更好的理解本发明,并不构成对本发明的不当限定。
图1为本发明的流程示意图;
图2为本发明中实施例1的目标图谱PDF页面;
图3为本发明中的相关术语示意图(以实施例1为例);
图4为本发明中实施例1中的图谱曲线的局部放大图;
图5为本发明中实施例1处理过程的示例1;
图6为本发明中实施例1处理过程的示例2;
图7为本发明中实施例1的结果展示;
图8为本发明中实施例2的目标图谱PDF页面;
图9为本发明中的相关术语示意图(以实施例2为例);
图10为本发明中实施例2处理过程的示例;
附图标记:1、图谱范围(LTRect对象)示例;2、坐标轴框架(LTCurve对象)示例;3、图谱其他文本对象(LTTextBoxHorizontal对象)示例;4、图谱曲线之一示例(LTCurve对象);5、积分线示例(LTLine对象);6、积分线标记示例(LTLine对象);7、横坐标刻度线示例(LTLine对象);8、横坐标刻度线标注(LTTextBoxHorizontal对象)示例;9、纵坐标刻度线示例(LTLine对象);10、纵坐标刻度线标注(LTTextBoxHorizontal对象)示例;11、积分线示例(LTCurve对象)。
具体实施方式
为便于理解,实施例采用Python语言编写的Pdfminer作为PDF解析工作软件,采用Python语言编写的Matplotlib作为绘图软件。
需要说明的是,因生成PDF图谱文件的报告程序不同,所调用的虚拟打印的方法不同,不同的图谱PDF文件在绘图细节上也存在差异。如是否采用对坐标轴框架、对积分线所采用的描绘方式(LTCurve对象或是LTLine对象)、积分线标记方式(以LTLine对象描述的直线型或者是以LTCurve对象描述的箭头型)。在处理方法上应进行相应的调整。基本流程见图1。
下面将结合附图来和具体实施例进一步阐述本发明。
实施例1:
目标PDF页面见图2,该PDF图谱存在一个由LTCurve对象绘制的坐标轴框架2以及LTLine对象绘制的积分线5,参见图3。
1、采用软件对PDF进行解析,通过解析文件的中以PDF页面为参照物生成的路径对象(Path Object),该类路径对象在Pdfminer中定义为LTRect对象,获得计算该类对象属性中的x1-x0及y1-y0的最大值,对符合条件的LTRect对象的位置信息进行解析,获得图谱范围1。
2、采用软件对PDF进行解析,通过解析文件的中以PDF页面为参照物生成的用于显示图谱的路径对象(Path Object),该类路径对象在Pdfminer中定义为LTCurve对象,对LTCurve对象进行识别,区分坐标轴框架2与图谱曲线4,参见图5。解析获得图谱曲线的LTCurve对象的路径点,参见图4,该路径点信息包含在LTCurve对象的属性中的pts中,将所获的多个绘制图谱曲线的LTCurve对象的路经点的相对坐标组合生成包含目标图谱上各点的位置的图谱相对坐标数据。
3、在图谱所处的位置范围内,分析LTTextBoxHorizontal类型的文本对象,参见图6,根据相对坐标 (x0,y0,x1,y1)进行区分,判断文本对象的功能。识别为纵坐标刻度线标注10,横坐标刻度线标注8及图谱其他文本对象3。所述实施例1的图谱其他文本对象3包括纵/横坐标轴单位,样品名称,测定参数信息。将所获的图谱其他文本及对应相对坐标按照功能分类进行保存,生成图谱参数数据。
4、在图谱所处的位置范围内,分析LTLine类型的路径对象。根据相对坐标 (x0,y0,x1,y1)进行区分,判断路经对象的功能。识别为纵坐标刻度线9,横坐标刻度线7、图谱的积分线5及积分线标记6。将所获的路径对象相对坐标的按照功能分类进行保存。将积分线5的图谱坐标生成积分线相对坐标数据。
5、对纵坐标刻度线标注的位置与对应的纵坐标刻度线的位置进行匹配,得到纵坐标刻度线标注的文本信息与对应的纵坐标刻度线的y0或者y1的匹配数据。对横坐标刻度线标注的位置与对应的横坐标刻度线的位置进行匹配,得到横坐标刻度线标注的文本信息与对应的横坐标刻度线的x0或者x1的匹配数据。
6、将上述分析图谱所得到的数据作为绘图参数进行保存,备用。
7、Matplotlib导入绘图参数进行绘制,采用.legend、.annotate、.plot、.text、.xticks和.yticks等命令对绘图参数中不同的内容进行描绘。采用.show命令进行输出图谱展示。
8、获得的图谱输出为图片格式以备调用,参见图7。
实施例2:
目标PDF页面见图8,该PDF图谱不存在由LTCurve对象绘制的坐标轴框架,其积分线11由LTCurve对象绘制,参见图9。
处理方法与实施例1基本一致。在对LTCurve对象的处理上略有所不同,需要进行对象的识别, 区分积分线11与图谱曲线4,识别的结果参见图10。
针对本实施例的其他操作与实施例1一致。
所述实施例仅为本发明的部分实施例,并非因此限制本发明的专利范围,在本发明的技术构思范围内,采用不同的编程语言,对技术方案进行的变换或直接间接应用于其他技术领域均在本发明的专利保护范围内。
- 基于PDF文件解析的图谱数据处理方法
- 基于PDF文件解析的图谱数据还原方法