发布网友 发布时间:2022-04-19 21:54
共1个回答
热心网友 时间:2023-09-02 21:49
使用小屏幕Kindle阅读PDF文档时,如果文档不是专门为小屏幕阅读器排版,就会经常出现显示字体太小的情况,造成阅读不便。而Kindle的屏幕刷新率又太低,页面局部放大后再移动阅读区域亦不现实。解决这一问题目前常用的方法有以下三种: 使用预处理软件对PDF文档进行裁剪页边,比如用裁边软件Briss去掉PDF文档的页边空白,使可阅读区域尽量大,再把生成的PDF文档放到Kindle里阅读。部分文档经过裁剪之后可以获得很好的阅读效果,但是还有一部分文档处理之后的页面仍然过大。 使用OCR(光学字符识别)软件把PDF中的文字提取导出为其他可重新排版的文档格式,如TXT和MOBI等。由于OCR存在一定的识别错误率,也不能保留排版样式(比如字体、字号和图表公式),因此这种方法的应用范围有限。 使用阅读器提取出文档中的字符和样式,以适应屏幕宽度的方式重新排版(称为文字回流,Text Reflow)。这种方法虽然可以保留字体样式信息,但是对于图表和公式的支持和方法二一样不够好;这种方法的另一个缺陷是不能重排扫描版的文档,因为扫描版文档中无法提取出字符和格式信息。 Koreader的重排功能离不开另一个开源软件项目K2pdfopt(GPLV3协议发布)。K2pdfopt也是为了解决PDF文档在小屏幕Kindle上阅读的排版问题而开发的。与其它PDF预处理软件相比,它有很多独一无二的特性,比如自动化程度很高,能够自动识别多栏排版的文档进行分栏,自动去除页面白边,自动对扫描文档进行水平校正,以及最重要的基于图像分割的重排版算法。K2pdfopt使用完全基于图像处理的方法对文字重新排版,软件处理时会把原始PDF/DJVU页面放大再分割成以词为单位的像素区域,把这些像素区域重新排列到目标宽度的页面中(原理如下图),所以理论上只要能够读取文档的页面像素就可以对其中的文字进行重新排版。这个算法的前提是页面中的文字之间需要有一定的空隙,以提供分割像素区域的位点。