基于PDF文件解析的图谱截图抓取方法
文献发布时间:2023-06-19 11:08:20
技术领域
本发明涉及实验室报告数据管理领域,是基于PDF文件解析的图谱截图抓取方法。
背景技术
图谱作为科学研究的重要手段,在分析实验中的作用巨大。
现有lims系统(实验室信息管理系统)及SDMS(科学数据管理系统)对多是对图谱中的文字性记录进行采集,对图谱的采集支持较差。图谱报告中的图谱因报告编辑的原因,其位置会发生变化,准确的截取较为困难。
目前的处理方式通常是采用工作站或专用软件的报告程序生成的报告文件作为附件提供。
PDF(Portable Document Format,便携式文档格式)是一种独立于硬件、操作系统、应用程序的电子文档。上述的图谱数据都可以通过虚拟打印的方式实现图谱报告的输出,生成图谱的PDF文件。PDF文件因其独特的优点成了事实上的实验室通用报告文本。
发明内容
发明目的:本发明针对数据采集存在的问题,提出了一种图谱的截取方法,通过判断图谱在图谱报告PDF页面中的位置,间接地在图谱报告页面上进行截取,实现图谱的抓取和使用。
技术方案:PDF是从PS语言(Postscript语言,即页面描述语言)发展而来的一种结构化的文档格式。通过页面描述指令对指定区域进行着色绘制页面,PDF支持5种类型的的位图对象(Graphic Objects)包括:路径对象(Path Object),文本对象(Text Obejct),图像对象(Image Object)和外部对象(External object:XObject)。
PDF文件中的图谱通常是采用路径对象(Path Object)形式实现,其中直线(Line),曲线(Curve),长方形(Rectangle)都属于路径对象(Path Object)。
随着信息技术的发展,目前已经工具可以实现对PDF文件中各类资源的解析,更进一步的可以实现对路径对象的识别和位置确定。这就为本发明的实现创造了必要的条件。
图谱报告通常采用安装于PC机、工作站或者网络服务器的专用工作软件的报告程序调用预设报告模板生成图谱报告,通过调用PDF的虚拟打印功能生成图谱报告的PDF文件。在上述过程中,所设置的报告模板会以框架的形式设定报告图谱的位置范围,这种框架在进行PDF虚拟打印的过程中通常采用长方形(Rectangle)的路径对象的形式输出到PDF页面上。
通过对这一路径对象的识别即可得到图谱的位置范围;结合页面尺寸的数据,即可测算所需确定的位置范围在各个方向的比例特征;通过对目标页面图像的等比例处理,即可实现准确截图。
由于采用了上述技术方案,本发明的有益效果为:可在PDF文件中对图谱进行准确定位,间接截取图谱为可引用的图片;可以统一实验室的报告形式,无需通过附件形式附加图谱,有助于形成更规范的报告文本;减少人工介入,提高工作效率。
附图说明
图1为本发明的流程示意图;
图2为本发明中实施例1的目标图谱PDF页面;
图3为本发明中的相关术语示意图(以实施例1为例);
图4为本发明中实施例1处理过程的示例;
图5为本发明中实施例1处理结果示例;
图6为本发明中实施例2的目标图谱PDF页面;
图7为本发明中的相关术语示意图(以实施例2为例);
图8为本发明中实施例8处理过程的示例;
附图标记:1、图谱范围(LTRect对象)示例。
具体实施方式
下面将结合附图来和具体实施例,为便于理解,本实施例采用python语言编写的Pdfminer作为PDF解析工作软件,采用ImageMagick作为PDF页面图片输出软件,采用Python语言编写的Pillow作为截图软件,进一步阐明本发明。
需要说明的是,因生成PDF图谱文件的报告程序不同,所调用的虚拟打印的方法不同,不同的图谱PDF文件在绘图细节上也存在差异,如表征图谱范围的 LTRect对象是隐藏或显示,但并不影响路径对象的识别和判断。基本流程见图1。
下面结合附图描述本发明的具体实施例。
实施例1:
目标PDF见图2,该实施例的表征图谱范围的 LTRect对象为显示状态,参见图3。
1、采用Pdfminer软件对PDF进行解析,获得PDF页面的尺寸信息;
结果为[x0=0、y0=0、x1=595、y1=842]。
2、通过解析文件的中以PDF页面为参照物生成的用于标示图谱范围的路径对象(Path Object),该类路径对象在Pdfminer中定义为LTRect对象,参见图3的标记;解析LTRect对象的位置信息(x0、y0、x1、y1),计算并寻找满足x1-x0及y1-y0均为最大值的LTRect对象1,并记录LTRect对象1的位置信息(x0,y0,x1,y1),参见图4,结果为(x0=73.080、y0=327.000、x1=537.600、y1=635.040);将结果与PDF页面的尺寸信息保存为截图中间参数。
3、采用ImageMagick作为PDF页面图片输出软件,将待截取的PDF页面保存为长宽比与PDF页面一致的图片格式,清晰度根据需要,选择300dpi,保存到指定位置备用。
4、采用Python语言编写的Pillow作为截图软件,对备用的图片进行尺寸分析;
图片尺寸:高1101,宽778;
采用Python语言编写的Pillow作为截图软件,其对参照原点(0,0)规定为图片的左上角,而所获得的截图中间参数的参照原点(0,0)为左下角,需要进行参数的计算和变换;
计算公式采用:
x
y
x
y
其中:
P
x0=73.080、y0=327.000、x1=537.600、y1=635.040,所述x0、y0、x1、y1为所获得的图谱位置信息。
S
计算得到截图参数x
5、根据所得到的截图参数截图并输出为图片,保存到指定位置备用,结果见图5。并删除备用的PDF页面图片。
6、采用Lims(实验室信息管理系统)或者SDMS(科学数据管理系统)通过程序调用所输出的图谱图片合成报告文件。
实施例2:
目标PDF见图6,该实施例的表征图谱范围的 LTRect对象为隐藏状态,参见图7;其页面尺寸与实施例一中的目标PDF不一致。实施过程的操作步骤亦进行了调整。
1、采用ImageMagick作为PDF页面图片输出软件,将待截取的PDF页面保存为长宽比与PDF页面一致的图片格式,清晰度根据需要,选择600dpi。保存到指定位置备用。
2、通过解析文件的中以PDF页面为参照物生成的用于标示图谱范围的路径对象(Path Object),该类路径对象在Pdfminer中定义为LTRect对象;解析LTRect对象的位置信息(x0、y0、x1、y1),计算并寻找满足x1-x0及y1-y0均为最大值的LTRect对象1,并记录LTRect对象1的位置信息(x0、y0、x1、y1),结果为(x0=60.66、y0=379.8、x1=550.40、y1=570.36)。
3、采用Pdfminer软件对PDF进行解析,获得PDF页面的尺寸信息;
结果为[x0=0,y0=0,x1=612,y1=792] ,将尺寸结果与图谱位置信息保存为截图中间参数。
4、采用Python语言编写的Pillow作为截图软件,对备用的图片进行尺寸分析;
图片尺寸:高1558,宽1204;
采用Python语言编写的Pillow作为截图软件,其对参照原点(0,0)规定为图片的左上角,而所获得的截图中间参数的参照原点(0,0)为左下角,需要进行参数的计算和变换;
计算公式采用:
x
y
x
y
其中:
P
x0=60.66、y0=379.8、x1=550.40、y1=570.36,所述x0、y0、x1、y1为所获得的图谱位置信息。
S
计算得到截图参数x
5、根据所得到的截图参数截图并输出为图片,保存到指定位置备用,结果见图8。并删除备用的PDF页面图片。
6、采用Lims(实验室信息管理系统)或者SDMS(科学数据管理系统)通过程序调用所输出的图谱图片合成报告文件。
所述实施例仅为本发明的部分实施例,并非因此限制本发明的专利范围,在本发明的技术构思范围内,采用不同的编程语言及处理软件,对技术方案进行的变换或直接/间接应用于其他技术领域均在本发明的专利保护范围内。
- 基于PDF文件解析的图谱截图抓取方法
- 基于PDF文件解析的图谱数据处理方法