当前位置: 首页 > 专利查询>吕海港专利>正文

一种PDF文档的版面重排方法技术

技术编号:24411008 阅读:68 留言:0更新日期:2020-06-06 09:12
为了给PDF文档留下足够的空间用于添加注释,本发明专利技术提供一种PDF文档的版面重排方法,包括导入PDF文档每页的页面信息,提取BT和ET之间文本及其排版信息,把这些矢量文本进行纵向压缩,横向保持不变,替换对应的文本及其排版信息,生成版面重排的页面,所有页面组合成版面重排后的新PDF文档。版面重排后的PDF文档的文本行间距变大,足以放下一行注释文字,原版面基本不变,不影响阅读。

A layout rearrangement method for PDF documents

【技术实现步骤摘要】
一种PDF文档的版面重排方法
本专利技术涉及文档排版领域,特别涉及一种PDF文档的版面重排方法。
技术介绍
随着信息技术的快速发展,大量信息和资料以PDF文档的形式保存和传播。PDF文档无论在哪种PDF阅读器上,无论在哪种打印机上,无论在哪种操作系统下,都可保证精确的颜色和准确的显示/打印效果,忠实地再现原稿排版效果,包括每一个字符、颜色和图像。在阅读PDF文档时,用户经常希望对文档进行一些注释。因此,大多数PDF阅读器,比如AdobeAcrobatReader,福昕PDF阅读器,迅捷PDF阅读器,都有文档注释功能。但是,PDF文档的页面一般都比较紧凑,只有两侧的空白处才能用于注释,不仅空间有限,而且用户阅读起来也很不方便,严重地限制了PDF文档的注释功能。为了解决PDF文档的注释展示空间不足的问题,需要对PDF文档的页面进行重新排版,从而给注释挤出一定的展示空间。
技术实现思路
本专利技术所要解决的技术问题是,将PDF页面进行重新排版,为注释留下一定的展示空间。为解决上述技术问题,本专利技术所采用的技术方案是一种PDF文档的版面重排方法,包括导入PDF文档每页的页面信息,提取BT和ET之间文本及其排版信息,把这些矢量文本进行纵向压缩,横向保持不变,替换对应的文本及其排版信息,生成版面重排的页面,所有版面重排后的页面组合成新的PDF文档。所述的把这些矢量文本进行纵向压缩,纵向压缩系数(压缩后文本高度与原文本的比值)为60%至80%。所述的把这些矢量文本进行纵向压缩,横向保持不变,可以通过文本变换操作Tm的纵向缩放参数乘以纵向压缩系数,同时位移操作Td和TD的纵向参数放大到纵向压缩系数的倒数倍来实现的。所述的把这些矢量文本进行纵向压缩,横向保持不变,也可以通过字体大小操作Tf乘以纵向压缩系数,同时横向缩放操作Tz放大到纵向压缩系数的倒数倍来实现。本专利技术有三点有益效果:(1)每行文本上方都有了相对充足的空间用于展示注释;(2)由于文本的宽度不变,PDF的版面完全保持原来的布局;(3)文本虽然高度变小,但是宽度完全不变,原文依然清晰可读,仅仅影响了一些美观。附图说明图1为本专利技术PDF文档的版面重排前后的对比图。图2为本专利技术PDF文档的不同压缩系数下版面重排后的对比图。具体实施方式下面结合附图和实施例对本专利技术做进一步阐述。本专利技术的实施例采用开源软件iText软件包(https://itextpdf.com/)对PDF文档进行解析和修改。因为PDF的页面是独立的,本实施例只选择一页PDF文档,其余页按照实施方式同样处理即可。实施例选用的正式出版物的英文期刊《PhysicalReviewLetters》的一篇文章:CompetitionforGraphene:GraphyneswithDirection-DependentDiracCones(https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.108.086804)的PDF版本作为例子进行说明。实施例1首先设定纵向压缩比yScale(压缩后文本高度比原文本高度)为70%,对PDF页面进行重新排版。其次将PDF文档逐页读入,用iText软件包的getPageContent函数把PDF压缩格式的源码转换成多行文本数组lineArr,把每行文本按照空格分割为字符串数组wordArr,对字符串数组wordArr的所有元素进行扫描。如果元素的值为“Tm”,则将其前面的第三wordArr元素(纵向缩放参数)乘以纵向压缩比yScale;如果元素的值为“Td”或者“TD”,则将前一个wordArr元素(纵向位移参数)除以yScale;然后将处理后的所有wordArr元素用空格串接起来。所有lineArr元素再用换行符串接起来,生成重新排版的一个PDF页面,对每个PDF页面依次进行处理,直到所有页面都处理完毕,组合成版面重排后的PDF文档。重排后的PDF页面见附图1的下图(20),与原PDF页面(10)相比,可以看到,行之间的间距变大,足以放下一行文字;而文字的位置和宽度完全保持,从而PDF版面保持不变。重排后的PDF页面中的文字仅仅是被纵向压缩了一些,仍然十分清楚,完全不影响阅读。因此,这种版面重排方法达到了为注释留下展示空间的目的。实施例2类似于实施例1,纵向压缩比yScale同样设定为70%。将PDF文档读入,分解为页面,页面分解为一行行文本,并将每行文本用空格分解为数组wordArr,然后扫描数组wordArr的所有元素。如果元素的值为“BT”,则在其后添加“143Tz”,将文本的横向缩放参数Tz(100为正常不变的值)变大为100/70%=143;如果元素的值为“Tf”,则将前一个元素(字符大小参数)的值乘以70%,把字体变小为原来的70%。这样,横向宽度先变大而字体变小,就保证了字符的横向宽度保持不变,而纵向高度变为原来的70%。这样处理后的元素串接起来,重新生成行,行再串接起来生成一个PDF页面,页面组合成重新排版的PDF文档。重排得到的页面效果与附图1的重排版面(20)完全一样,因此也可以达到为注释留出展示空间的目的。实施例3类似于实施例1,纵向压缩比yScale分别为50%,60%,70%,80%,90%,对PDF文档进行页面重排,得到附图2,其中50、60、70、80、90分别对应于纵向压缩比yScale为50%、60%、70%、80%、90%。从附图2可以看出,纵向压缩比为50%时,原文本被压缩得变形很大,影响阅读;而60%时还可以文字比较清晰,不影响阅读,所以最小的纵向压缩比为60%。而纵向压缩比为90%时,挤出的空间太小,不足展示一行注释文字;而80%时留出的空间基本上可以展示一行略小的文字,因此最大的纵向压缩比为80%。综合起来,为注释展示留出空间的最佳纵向压缩比为60%至80%。通过上述三个实施例,可以看到,可以通过排版重排,简单地对原PDF版面的文本的进行纵向压缩,就可以在保留了PDF的内容和布局下,为注释展示留出足够的空间,有利于用户在阅读过程中随时随处注释。本文档来自技高网...

【技术保护点】
1.一种PDF文档的版面重排方法,包括导入PDF文档每页的页面信息,提取BT和ET之间文本及其排版信息,把这些矢量文本进行纵向压缩,横向保持不变,替换对应的文本及其排版信息,生成版面重排的页面,所有页面组合成版面重排后的新PDF文档。/n

【技术特征摘要】
1.一种PDF文档的版面重排方法,包括导入PDF文档每页的页面信息,提取BT和ET之间文本及其排版信息,把这些矢量文本进行纵向压缩,横向保持不变,替换对应的文本及其排版信息,生成版面重排的页面,所有页面组合成版面重排后的新PDF文档。


2.根据权利要求1所述的把这些矢量文本进行纵向压缩,其特征在于,纵向压缩系数(压缩后文本高度与原文本的比值)为60%至80%。

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:吕海港
类型:发明
国别省市:山西;14

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1