一种双层PDF文件样式格式化输出方法、装置、设备和介质转让专利

申请号 : CN202011421689.7

文献号 : CN112685994B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄敬林庄莉梁懿林振天池少宁

申请人 : 福建亿榕信息技术有限公司国网信息通信产业集团有限公司国网信通亿力科技有限责任公司

摘要 :

本发明实施例提供一种双层PDF文件样式格式化输出方法、装置、设备和介质,基于Java通过pdfbox工具包对双层pdf文档进行解析,对双层PDF文件解析后的标签逐页进行内容分析和格式化提取,然后对pdf文档内容按规范段落格式输出,实现对文本内容的有效格式化处理,为公文智能化分析的数据预处置提供的良好的工具,大大节省内容处理的时间,减少人为的干预。

权利要求 :

1.一种双层PDF文件样式格式化输出方法,其特征在于,包括:步骤a、加载双层PDF文件,并触发文档内容解析,得到文本标签;

步骤b、逐页对解析后的双层PDF文件进行内容分析,在每页开始时,记录页号、页宽以及页高信息;

步骤c、缓存当前页的所有文本标签对应的横向坐标和纵向坐标;

步骤d、获取加粗文本并缓存,得到加粗缓存队列;

步骤e、在每页结束时,按每一文本标签对应的横向坐标和纵向坐标对所述文本标签进行排序;

步骤f、根据所述加粗缓存队列,将所述文本标签中的加粗文本内容标识为加粗信息;

步骤g、顺序缓存当前页的所有文本标签,调用标签输出方法进行内容输出,得到当前页内容;

步骤h、去除所述当前页内容中的特殊信息,得到当前页文本;所述特殊信息包括页号、特殊标识、纯数字、空页背后内容以及横向界面内容;

步骤i、在所述当前页文本中提取文本字号第一字号区间内文字作为发文单位信息,然后输出所述发文单位信息;

步骤j、通过正则表达式在所述当前页文本中提取文号信息,然后输出所述文号信息;

步骤k、在所述当前页文本中提取文本字号在第二字号区间的文字作为题名信息,然后输出所述题名信息;

步骤l、当纵向界面转成横向页面、新行为缩进的文本内容或行尾坐标比实际坐标短时,标记段落结束并重起新段落;

步骤m、根据段落标记逐段提取所述当前页文本,并计算文本字数;

步骤n、判断文档是否结束,若文档没有结束,标识页结束标识为否,然后返回步骤b,若文档结束,执行步骤o;

步骤o、输出所述双层PDF文件的文字总数和总页数。

2.根据权利要求1所述的方法,其特征在于:所述第一字号区间包括35‑55区间和20‑30区间。

3.根据权利要求1所述的方法,其特征在于:所述第二字号区间包括19‑25 区间和12‑

14.5区间。

4.一种双层PDF文件样式格式化输出装置,其特征在于:包括:加载解析模块、本页开始模块、坐标缓存模块、加粗内容缓存模块、重新排列模块、加粗文本标识模块、标签输出模块、特殊信息去除模块、发文单位提取模块、文号提取模块、题名提取模块、段落判断模块、段落提取模块、文档结束判断模块以及输出结果模块;

所述加载解析模块,用于加载双层PDF文件,并触发文档内容解析,得到文本标签;

所述本页开始模块,用于逐页对解析后的双层PDF文件进行内容分析,在每页开始时,记录页号、页宽以及页高信息;

所述坐标缓存模块,用于缓存当前页的所有文本标签对应的横向坐标和纵向坐标;

所述加粗内容缓存模块,用于获取加粗文本并缓存,得到加粗缓存队列;

所述重新排列模块,用于在每页结束时,按每一文本标签对应的横向坐标和纵向坐标对所述文本标签进行排序;

所述加粗文本标识模块,用于根据所述加粗缓存队列,将所述文本标签中的加粗文本内容标识为加粗信息;

所述标签输出模块,用于顺序缓存当前页的所有文本标签,调用标签输出方法进行内容输出,得到当前页内容;

所述特殊信息去除模块,用于去除所述当前页内容中的特殊信息,得到当前页文本;所述特殊信息包括页号、特殊标识、纯数字、空页背后内容以及横向界面内容;

所述发文单位提取模块,用于在所述当前页文本中提取文本字号第一字号区间内文字作为发文单位信息,然后输出所述发文单位信息;

所述文号提取模块,用于通过正则表达式在所述当前页文本中提取文号信息,然后输出所述文号信息;

所述题名提取模块、在所述当前页文本中提取文本字号在第二字号区间的文字作为题名信息,然后输出所述题名信息;

所述段落判断模块,用于当纵向界面转成横向页面、新行为缩进的文本内容或行尾坐标比实际坐标短时,标记段落结束并重起新段落;

所述段落提取模块,用于根据段落标记逐段提取所述当前页文本,并计算文本字数;

所述文档结束判断模块,用于判断文档是否结束,若文档没有结束,标识页结束标识为否,然后返回本页开始模块,若文档结束,执行输出结果模块;

所述输出结果模块,用于输出所述双层PDF文件的文字总数和总页数。

5.根据权利要求4所述的装置,其特征在于:所述第一字号区间包括35‑55区间和20‑30区间。

6.根据权利要求4所述的装置,其特征在于:所述第二字号区间包括19‑25区间和12‑

14.5区间。

7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至3任一项所述的方法。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至3任一项所述的方法。

说明书 :

一种双层PDF文件样式格式化输出方法、装置、设备和介质

技术领域

[0001] 本发明涉及PDF文件处理技术领域,特别涉及一种双层PDF文件样式格式化输出方法、装置和介质。

背景技术

[0002] 在协同办公系统中存在大量的外部纸质收文,基本都是通过扫描+OCR识别转换成双层的PDF文件进行流转,该双层PDF文件里包含的文本内容只有点降的文本信息,并未有具体的文件的段落格式等信息内容。为后期公文的分析带来大量的问题。传统的做法主要通过提取PDF中文本的内容,通过标点符号、文本的语义信息等方法去分析与重构文档的基本结构,这种方式很难还原原有公文的格式信息,为公文基于样式的元数据信息提取带来的困难。
[0003] 现有双层PDF样式格式化主要还是停留在针对抽取文件内容的语义分析层面,很难还原PDF文件原有展示的具体样式内容,包含:题名、文号、标题、段落内容等格式信息,给基于PDF公文按样式抽取内容带来巨大的障碍。

发明内容

[0004] 本发明要解决的技术问题,在于提供一种双层PDF文件样式格式化输出方法、装置、设备和介质,基于Java通过PDF工具包对双层pdf文档进行解析,实现对pdf文档内容按规范段落格式输出。
[0005] 第一方面,本发明提供了一种双层PDF文件样式格式化输出方法,包括:
[0006] 步骤a、加载双层PDF文件,并触发文档内容解析,得到文本标签;
[0007] 步骤b、逐页对所述解析后的双层PDF文件进行内容分析,在每页开始时,记录页号、页宽以及页高信息;
[0008] 步骤c、缓存当前页的所有文本标签对应的横向坐标和纵向坐标;
[0009] 步骤d、获取加粗文本并缓存,得到加粗缓存队列;
[0010] 步骤e、在每页结束时,按每一文本标签对应的横向坐标和纵向坐标对所述文本标签进行排序;
[0011] 步骤f、根据所述加粗缓存队列,将所述文本标签中的加粗文本内容标识为加粗信息;
[0012] 步骤g、顺序缓存当前页的所有文本标签,调用标签输出方法进行内容输出,得到当前页内容;
[0013] 步骤h、去除所述当前页内容中的特殊信息,得到当前页文本;
[0014] 步骤i、在所述当前页文本中提取文本字号第一字号区间内文字作为发文单位信息,然后输出所述发文单位信息;
[0015] 步骤j、通过正则表达式在所述当前页文本中提取文号信息,然后输出所述文号信息;
[0016] 步骤k、在所述当前页文本中提取文本字号在第二字号区间的文字作为题名信息,然后输出所述题名信息;
[0017] 步骤l、当纵向界面转成横向页面、新行为缩进的文本内容或行尾坐标比实际坐标短时,标记段落结束并重起新段落;
[0018] 步骤m、根据段落标记逐段提取所述当前页文本,并计算文本字数;
[0019] 步骤n、判断文档是否结束,若文档没有结束,标识页结束标识为否,然后返回步骤b,若文档结束,执行步骤o;
[0020] 步骤o、输出所述双层PDF文件的文字总数和总页数。
[0021] 进一步地,所述步骤h中,所述特殊信息包括页号、特殊标识、纯数字、空页背后内容以及横向界面内容
[0022] 进一步地,所述第一字号区间包括35‑55区间和20‑30区间。
[0023] 进一步地,所述第二字号区间包括19‑25区间和12‑14.5区间。
[0024] 第二方面,本发明提供了一种双层PDF文件样式格式化输出装置,包括:加载解析模块、本页开始模块、坐标缓存模块、加粗内容缓存模块、重新排列模块、加粗文本标识模块、标签输出模块、特殊信息去除模块、发文单位提取模块、文号提取模块、题名提取模块、段落判断模块、段落提取模块、文档结束判断模块以及输出结果模块;
[0025] 所述加载解析模块,用于加载双层PDF文件,并触发文档内容解析,得到文本标签;
[0026] 所述本页开始模块,用于逐页对所述解析后的双层PDF文件进行内容分析,在每页开始时,记录页号、页宽以及页高信息;
[0027] 所述坐标缓存模块,用于缓存当前页的所有文本标签对应的横向坐标和纵向坐标;
[0028] 所述加粗内容缓存模块,用于获取加粗文本并缓存,得到加粗缓存队列;
[0029] 所述重新排列模块,用于在每页结束时,按每一文本标签对应的横向坐标和纵向坐标对所述文本标签进行排序;
[0030] 所述加粗文本标识模块,用于根据所述加粗缓存队列,将所述文本标签中的加粗文本内容标识为加粗信息;
[0031] 所述标签输出模块,用于顺序缓存当前页的所有文本标签,调用标签输出方法进行内容输出,得到当前页内容;
[0032] 所述特殊信息去除模块,用于去除所述当前页内容中的特殊信息,得到当前页文本;
[0033] 所述发文单位提取模块,用于在所述当前页文本中提取文本字号第一字号区间内文字作为发文单位信息,然后输出所述发文单位信息;
[0034] 所述文号提取模块,用于通过正则表达式在所述当前页文本中提取文号信息,然后输出所述文号信息;
[0035] 所述题名提取模块、在所述当前页文本中提取文本字号在第二字号区间的文字作为题名信息,然后输出所述题名信息;
[0036] 所述段落判断模块,用于当纵向界面转成横向页面、新行为缩进的文本内容或行尾坐标比实际坐标短时,标记段落结束并重起新段落;
[0037] 所述段落提取模块,用于根据段落标记逐段提取所述当前页文本,并计算文本字数;
[0038] 所述文档结束判断模块,用于判断文档是否结束,若文档没有结束,标识页结束标识为否,然后返回本页开始模块,若文档结束,执行输出结果模块;
[0039] 所述输出结果模块,用于输出所述双层PDF文件的文字总数和总页数。
[0040] 进一步地,所述特殊信息包括页号、特殊标识、纯数字、空页背后内容以及横向界面内容
[0041] 进一步地,所述第一字号区间包括35‑55区间和20‑30区间。
[0042] 进一步地,所述第二字号区间包括19‑25区间和12‑14.5区间。
[0043] 第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
[0044] 第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
[0045] 本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0046] 基于Java通过pdfbox工具包对双层pdf文档进行解析,对双层PDF文件解析后的标签逐页进行内容分析和格式化提取,然后对pdf文档内容按规范段落格式输出,实现对文本内容的有效格式化处理,为公文智能化分析的数据预处置提供的良好的工具,大大节省内容处理的时间,减少人为的干预。
[0047] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0048] 下面参照附图结合实施例对本发明作进一步的说明。
[0049] 图1为本发明系统的框架示意图;
[0050] 图2为本发明实施例一中方法中的流程图;
[0051] 图3为本发明实施例二中装置的结构示意图;
[0052] 图4为本发明实施例三中电子设备的结构示意图;
[0053] 图5为本发明实施例四中介质的结构示意图。

具体实施方式

[0054] 为了使本领域技术人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都应当属于本申请的保护范围。
[0055] 实施例一
[0056] 本实施例提供一种双层PDF文件样式格式化输出方法,如图1所示,包括:
[0057] 步骤a、加载双层PDF文件:加载双层PDF文件,并触发文档内容解析,得到文本标签;
[0058] 可以通过pdfbox工具包加载加载超链接传入的pdf文件信息,并触发文档内容解析;也可以采用现有的其它pdf工具实现文档内容解析;
[0059] 步骤b、本页开始:逐页对所述解析后的双层PDF文件进行内容分析,在每页开始时,记录页号、页宽以及页高信息;
[0060] 步骤c、缓存输出内容:缓存当前页的所有文本标签对应的横向坐标和纵向坐标;
[0061] 解析后的pdf文件通常为一块一块的文本块,每一个文本块即为一个文本标签;
[0062] 步骤d、缓存加粗内容:获取加粗文本并缓存,得到加粗缓存队列;
[0063] 为了保留双层PDF文件的加粗文本信息,通过判断是否为加粗文本,如果是则缓存加粗文本内容到缓存中,直到连续文本加粗内容取完后放入到加粗缓存队列中,然后触发本页结束;
[0064] 步骤e、重新排列标签:在每页结束时,按每一文本标签对应的横向坐标和纵向坐标对所述文本标签进行排序;按纵坐标排序文本的行信息,以横坐标排序文本内容的前后顺序;
[0065] 步骤f、标识加粗内容:根据所述加粗缓存队列,将所述文本标签中的加粗文本内容标识为加粗信息;
[0066] 步骤g、输出本页内容:顺序缓存当前页的所有文本标签,调用标签输出方法进行内容输出,得到当前页内容;
[0067] 调用标签输出方法,实现将文本标签输出成XML数据;
[0068] 步骤h、去除特殊信息:去除所述当前页内容中的特殊信息,得到当前页文本;
[0069] 在一种可能的实现方式中,所述特殊信息包括页号、特殊标识、纯数字、空页背后内容以及横向界面内容等信息;
[0070] 步骤i、提取发文单位:在所述当前页文本中提取文本字号第一字号区间内文字作为发文单位信息,然后输出所述发文单位信息;
[0071] 在一种可能的实现方式中,所述第一字号区间包括35‑55区间和20‑30区间,当文本字号在两区间中任意一区间内时,即被提取为发文单位信息;
[0072] 步骤j、提取文号:通过正则表达式在所述当前页文本中提取文号信息,然后输出所述文号信息;
[0073] 步骤k、提取题名:在所述当前页文本中提取文本字号在第二字号区间的文字作为题名信息,然后输出所述题名信息;
[0074] 在一种可能的实现方式中,所述第二字号区间包括19‑25区间和12‑14.5区间,当文本字号在两区间中任意一区间内时,即被提取为题名信息;
[0075] 步骤l、输出段落标签:当纵向界面转成横向页面、新行为缩进的文本内容或行尾坐标比实际坐标短时,标记段落结束并重起新段落;
[0076] 步骤m、提取段落内容:根据段落标记逐段提取所述当前页文本,并计算文本字数;
[0077] 步骤n、判断文档是否结束:若文档没有结束,标识页结束标识为否,然后返回步骤b,清空缓存,执行下一页文档的解析;若文档结束,执行步骤o;
[0078] 步骤o、输出文档字数与页数:输出所述双层PDF文件的文字总数和总页数。
[0079] 输出的内容以XML形成表示,分为发文单位、文号、题名、段落、文字总数、总页数等,本实施例双层PDF格式化表示的输出结果如图2所示,输出内容包括:发文单位、题名、段落信息1、段落信息2、段落信息3、……、段落信息n、文字总数以及总页数。
[0080] 本发明实施例在公文视觉样式的角度,以公文字段、位置及语义信息实现对现有公文文本内容的提取,实现对公文内容转换成格式化的XML信息,实现对PDF公文元数据、段落信息、页号、页数等信息以XML格式进行展现,为文档智能化应用提供了良好的应用素材。
[0081] 基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。
[0082] 实施例二
[0083] 在本实施例中提供了一种双层PDF文件样式格式化输出装置,如图3所示,包括:加载解析模块、本页开始模块、坐标缓存模块、加粗内容缓存模块、重新排列模块、加粗文本标识模块、标签输出模块、特殊信息去除模块、发文单位提取模块、文号提取模块、题名提取模块、段落判断模块、段落提取模块、文档结束判断模块以及输出结果模块;
[0084] 所述加载解析模块,用于加载双层PDF文件,并触发文档内容解析,得到文本标签;
[0085] 所述本页开始模块,用于逐页对所述解析后的双层PDF文件进行内容分析,在每页开始时,记录页号、页宽以及页高信息;
[0086] 所述坐标缓存模块,用于缓存当前页的所有文本标签对应的横向坐标和纵向坐标;
[0087] 所述加粗内容缓存模块,用于获取加粗文本并缓存,得到加粗缓存队列;
[0088] 所述重新排列模块,用于在每页结束时,按每一文本标签对应的横向坐标和纵向坐标对所述文本标签进行排序;
[0089] 所述加粗文本标识模块,用于根据所述加粗缓存队列,将所述文本标签中的加粗文本内容标识为加粗信息;
[0090] 所述标签输出模块,用于顺序缓存当前页的所有文本标签,调用标签输出方法进行内容输出,得到当前页内容;
[0091] 所述特殊信息去除模块,用于去除所述当前页内容中的特殊信息,得到当前页文本;
[0092] 所述发文单位提取模块,用于在所述当前页文本中提取文本字号第一字号区间内文字作为发文单位信息,然后输出所述发文单位信息;
[0093] 所述文号提取模块,用于通过正则表达式在所述当前页文本中提取文号信息,然后输出所述文号信息;
[0094] 所述题名提取模块、在所述当前页文本中提取文本字号在第二字号区间的文字作为题名信息,然后输出所述题名信息;
[0095] 所述段落判断模块,用于当纵向界面转成横向页面、新行为缩进的文本内容或行尾坐标比实际坐标短时,标记段落结束并重起新段落;
[0096] 所述段落提取模块,用于根据段落标记逐段提取所述当前页文本,并计算文本字数;
[0097] 所述文档结束判断模块,用于判断文档是否结束,若文档没有结束,标识页结束标识为否,然后返回本页开始模块,若文档结束,执行输出结果模块;
[0098] 所述输出结果模块,用于输出所述双层PDF文件的文字总数和总页数。
[0099] 在一种可能的实现方式中,所述特殊信息包括页号、特殊标识、纯数字、空页背后内容以及横向界面内容
[0100] 在一种可能的实现方式中,所述第一字号区间包括35‑55区间和20‑30区间。
[0101] 在一种可能的实现方式中,其特征在于:所述第二字号区间包括19‑25区间和12‑14.5区间。
[0102] 由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
[0103] 基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。
[0104] 实施例三
[0105] 本实施例提供了一种电子设备,如图4所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
[0106] 由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
[0107] 基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
[0108] 实施例四
[0109] 本实施例提供一种计算机可读存储介质,如图5所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
[0110] 本说明书实施例基于Java通过pdfbox工具包对双层pdf文档进行解析,对双层PDF文件解析后的标签逐页进行内容分析和格式化提取,然后对pdf文档内容按规范段落格式输出,实现对文本内容的有效格式化处理,为公文智能化分析的数据预处置提供的良好的工具,大大节省内容处理的时间,减少人为的干预。
[0111] 虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。