[发明专利]一种基于PDF页面的拆分和拼页方法在审
申请号: | 202111139740.X | 申请日: | 2021-09-27 |
公开(公告)号: | CN113867654A | 公开(公告)日: | 2021-12-31 |
发明(设计)人: | 郑元林;陈兵;廖开阳;刘春霞;陈文倩;王凯迪;孙英健;王可儿;王晓莹;谢雨林;张新会;钟崇军;解博 | 申请(专利权)人: | 西安理工大学 |
主分类号: | G06F3/12 | 分类号: | G06F3/12;G06T7/00;G06T7/90 |
代理公司: | 西安弘理专利事务所 61214 | 代理人: | 王丹 |
地址: | 710048 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 pdf 页面 拆分 方法 | ||
1.一种基于PDF页面的拆分和拼页方法,其特征在于,使用内建的拆分和拼页方式进行拆分和拼页,所述PDF页面的拼页方式包括读取PDF页面、图像转换、灰彩判别、页面分离、合并与拼接;具体按以下步骤实施:
步骤1,读取PDF文件,获取全部页面并转换为图像数据;
步骤2,将经步骤1得到的图像数据进行通道分离和像素占比检测,包括计算彩色像素在整个图像上的占比和与标准灰度图像的偏离值,进行页面的灰彩判断;
步骤3,结合经步骤2得到的灰彩判断结果,根据内建的打印方式和拼页方式选项对页面进行分离与重组;
步骤4,将经步骤3得到的重组页面传入写入器中,由写入器输出,完成拆分与拼页。
2.根据权利要求1所述的一种基于PDF页面的拆分和拼页方法,其特征在于,步骤1具体按照以下方法实施:
使用python pymupdf里面的open和getPixmap方法,使用open算法读取PDF文件,并以页面为对象建立列表;使用getPixmap算法将每个单页页面转换为图像数据。
3.根据权利要求1所述的一种基于PDF页面的拆分和拼页方法,其特征在于,步骤2具体按照以下方法实施:
灰彩判别算法,该算法主要包含两个部分,分别为:
(3)计算彩色像素总数;即图像中彩色像素点的数量;
(4)计算彩色像素占比;即在总像素数量上的占比;
采用灰彩判别算法计算每个图像中彩色像素点的数量和在总像素上的占比,计算方法表示为:
上式中,R、G、B分别表示三个通道的像素矩阵,m、n表示矩阵的大小,X表示对应的灰度矩阵,x表示彩色像素总数,t表示图像中彩色像素的占比;
对x和t,即彩色像素总数与彩色像素的占比做如下计算:
其中,ij表示单一算法下的判别结果;λj表示阈值,阈值λx设为100,彩色占比阈值λt取3.8%;
i表示对两个计算结果的加权平均值取二值化,作为当前页最终的判别结果,判别结果为一个列表T,形式为[0,1,0,1,0,0,0,0,1,0...],T中的每个元素与页数一一对应,长度为总页数,0表示当前页灰页,1表示当前页为彩页。
4.根据权利要求1所述的一种基于PDF页面的拆分和拼页方法,其特征在于,步骤3具体按照以下方法实施
将步骤2得到灰彩判别结果进一步与内建的打印方式和拼页方式对页面进行重组,具体内容包括:
内建的打印方式:基于纸张的正背面,提供“单面打印”和“双面打印”两种选项,择一选择;
内建的拼页方式:提供单本拼和复制拼两种;最终需要输出的文件类型包括单独拼和全拼;
所述单本拼与复制拼的共同之处在于将两个页面横向拼接为一页,不同之处在于页面的顺序;单本拼将全部页面按页码顺序分为前后两部分,按顺序各取一页横向拼接,得到新页面;复制拼则是将原页面复制,再与被复制页面横向拼接,得到新页面;
所述单独拼与全拼:为单本拼和复制拼的细化选项;所述单独拼是只对其中一份文件进行拼页,另一份不拼页,即单独拼灰页、单独拼彩页;所述全拼即不加以区分;
若为拼页方式为横版,自动更改页面的旋转属性,调整为竖版;
添加空白页:打印方式和拼页方式可自由组合,不同的组合对页数要求不同;若不满足,在末尾自动添加数页空白页,直至总页数符合要求。
5.根据权利要求4所述的一种基于PDF页面的拆分和拼页方法,其特征在于,步骤3页面调整为竖版的方法为:
获取PDF页面对象含有媒体框和旋转属性的值,媒体框属性值包含了页面的高H和宽W,旋转属性值为页面的旋转度数R,为正值表示顺时针旋转该值,为负表示逆时针旋转;R一般为0,若R不为0,则R必定为90或180的整数倍;
H大于W时:若R为0,不做调整,即原页面保持不变;若R不为0,R取原值的相反数,即原页面反向旋转相同角度;
H小于W时,若R为0,R调整为90,即原页面顺时针旋转90度;若R不为0,R取原值的相反数,再加90,即原页面反向旋转相同角度后再顺时针旋转90度。
6.根据权利要求4所述的一种基于PDF页面的拆分和拼页方法,其特征在于,
步骤3添加空白页的方法为:
空白页的生成由python reportlab库的canvas提供,生成的空白页面与原文件页面大小和方向相同,在文件页数不满足打印和拼页要求时,自动在末尾添加空白页;
打印方式为单面,不拼页,无需添加空白页;
打印方式为单面,拼页方式为复制拼,无需添加空白页;
打印方式为单面,拼页方式为单本拼,总页数为奇数时,添加一页空白页;总页数为偶数时,无需添加空白页;
打印方式为双面,不拼页,总页数为奇数时,添加一页空白页;总页数为偶数时,无需添加空白页;
打印方式为双面,拼页方式为复制拼,总页数为奇数时,添加一页空白页;总页数为偶数时,不添加空白页;
打印方式为双面,拼页方式为单本拼,总页数需为四的最小倍数;若不足,添加数页空白页直到满足四的最小倍数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安理工大学,未经西安理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111139740.X/1.html,转载请声明来源钻瓜专利网。