1. kindle上的 Kindlepdfviewer
===========================以下为转帖=======================
来自-----------h t t p://vislabhttp://www.360doc.com/content/13/0226/21/blog/hwangxin/2012/10/read-scanned-pdfs-with-kindlepdfviewer/
使用小屏幕Kindle阅读PDF文档时,如果不是专门为小屏幕阅读器排版的文档,会经常出现显示字体太小的情况,造成阅读不便。而Kindle的屏幕刷新率又太低,页面局部放大后再移动阅读区域亦不现实。解决这一问题目前常用的方法有两种:一是使用PDF预处理软件对文档进行裁剪,比如用裁边软件
Briss
去掉PDF文档的页边空白,使可阅读区域尽量大,再把生成的PDF文档放到Kindle里阅读。部分文档经过裁剪之后可以获得很好的阅读效果,但是还有一部分文档处理之后的页面仍然过大。这种文档如果是文字版的,可以使用第二种方法:阅读器提取出文档中的文字和格式,以适应屏幕宽度的方式重新排版(称为文字回流,Text Reflow),目前支持PDF重排版的Kindle阅读器有多看阅读 for Kindle
和本文介绍的Kindlepdfviewer。与多看系统相比,Kindlepdfviewer不仅支持文字版PDF重排,还支持扫描版PDF和DJVU文档的重排版。简单介绍Kindlepdfviewer
“Kindle的PDF阅读外挂”
Kindlepdfviewer
是一个开放源代码(GPLv3协议发布)的Kindle阅读器,项目托管在Github上,对代码有兴趣的朋友可以去fork。Kindlepdfviewer默认运行在Kindle原生系统里,只需要在原生系统中打开KPV程序就可以使用,关闭KPV程序就回到了原生系统界面,切换很方便。软件除了支持名字中提到的PDF格式以外,实际上还支持DjVu, XPS, CBZ, FB2, TXT, HTML, RTF, CHM, EPUB, DOC, MOBI, AZW, ZIP等几乎所有主流电子书文档格式。Kindlepdfviewer支持的设备包括Kindle 2、Kindle 3和Kindle DX(G),对Kindle 4、Kindle Touch和Kindle Paperwhite的支持正在开发中。因为本文主要介绍Kindlepdfviewer的PDF/DJVU重排功能,所以对使用Kindlepdfviewer阅读其他格式感兴趣的读者可自行安装体验。重排功能的开发
首先简单介绍KPV重排版功能的开发过程,这样知其然也能知其所以然。KPV的重排功能离不开另一个开源软件项目
K2pdfopt
(GPLV3协议发布)。K2pdfopt这个软件也是为了解决PDF文档在小屏幕Kindle上阅读的排版问题而开发的。与其它PDF预处理软件相比,它有很多独一无二的特性,比如自动化程度很高,能够自动识别多栏排版的文档进行分栏,自动去除页面白边,自动对扫描文档进行水平校正,以及最重要的基于图像分割的重排版算法。K2pdfopt使用完全基于图像处理的方法对文字重新排版,软件处理时会把原始PDF/DJVU页面分割成以词为单位的像素区域,再对这些像素区域重新排列到目标宽度的页面中,所以理论上只要能够读取文档的页面像素就可以对其中的文字进行重新排版。这个算法的前提是页面中的文字之间需要有一定的空隙,以提供分割像素区域的位点。更多K2pdfopt的处理效果请参考这篇文章用K2PDFopt重排版面,随手解救扫描PDF
。自从K2pdfopt的作者
Willus
把K2pdfopt开源之后,我一直想把它移植到Kindle的PDF阅读器中,在阅读时让PDF重新排版。一是这样可以省去电脑上处理PDF的步骤,二是不必担心生成巨型文件放到kindle中无法识别,三是可以在kindle上交互式地微调排版参数,尽可能地生成满意的排版。之后我发现了Kindlepdfviewer这个开源项目,它本身自带了一个PDF阅读器,我将它稍加修改,添加了K2pdfopt的页面重排功能。使用Kindlepdfviewer的重排模式阅读时,软件会自动把当前页和下一页重排版成适应屏幕的尺寸。以下是该软件在Kindle 3上的使用截屏。软件重排效果
多栏排版页面的重排
下图是Kindlepdfviewer对多栏排版页面的重排效果对比:

左侧为重排前的原始页面,其中图像占据两栏的宽度,而重排之后图像仍然完整地显示,文字部分被重排为一栏显示。
数学公式的重排
对数学公式的重排支持是Kindlepdfviewer的关键特性,因为使用文字提取的重排版方式对公式这种复杂排版样式的支持并不好,而Kindlepdfviewer独特的排版算法却可以获得非常好的重排效果:

左侧为重排前的原始页面,右侧是重排后的页面,字体放大了1.5倍仍然保持了公式的完整。
扫描版PDF的重排
在Kindle上对扫描版PDF的重排是目前为止Kindlepdfviewer独有的功能,重排效果如下图:

左侧为重排前的扫描PDF页面,右侧是重排后的页面。
中文文档的重排
经过测试Kindlepdfviewer对大部分英文文档都可以获得很好的重排效果。而中文文档因为字间距太小,没有西文词之间的空格所以重排时应该选择较小的词间距。理论上只要中文字之间的间隔足够大,对中文文档也能获得很好的重排效果。这是对中文文档的重排测试(使用《红楼梦》脂评汇校本PDF文档):

左侧为重排前的PDF页面,右侧是重排后的页面。重排效果是字体样式全部保留,只增加了字体大小。
对中文竖排文档的重排(使用中华书局《史记》三家注释正体竖排扫描版):

左上为重排前的原始页面,右上是重排使用的参数,使用了较小的字号、较小的词间距和90度旋转屏幕。下图是重排后的显示效果。
软件使用
选择阅读器
在Kindlepdfviewer主界面,第一次打开PDF文档时会出现选择阅读器的提示对话框,如下图所示:

如果需要PDF重排请选择PDFReflow阅读器。在当前对话框中快捷键”T”可以关联选择的阅读器到所有PDF文档,下次打开PDF时将不再出现此对话框;快捷键”F”会关联选择的阅读器到此文档。如果需要清除阅读器关联,请用PDFReflow阅读器打开一个PDF文档后按ALT+C,清除此文档的阅读器关联;按SHIFT+C清除对此文档格式的关联。
排版参数微调
在阅读界面按“Aa”键可以调出重排参数调整界面进行排版微调。目前可调参数包括:字体大小、页边距、行间距、分词间距、对齐方式、最大栏数、水平较正、字体黑度、屏幕旋转等。如下图所示:

以下是各参数的使用方法(使用2012.11.11之后的开发版):
- 换行重排(Reflow)开启时,选择不同的字号可以放大和缩小页面字体。注意实际显示的字体大小不一定与选择的大小完全相同。
- 软件支持先切边后重排。切边(Trim Page)选择自动模式(auto)时,软件会自己选择切除页面白边,使内容区域最大化;也可以选择手动切边(manual),具体使用方法请看下节视频演示。
- 软件能够自动识别并去除扫描PDF/DJVU页面上的污点(Defect),可选污点大小,默认使用中等(medium)大小。
- 重排生成页面的页边距(Page Margin)有三档可调,默认使用中等(medium)页边距。
- 重排生成页面的行间距(Line Spacing)有三档可调,默认使用中等(medium)行间距。
- 重排过程中断词阈值使用词间距(Word Spacing)参数,建议中文文档选择较小(small)词间距,英文文档选择中等(medium)词间距。
- 重排页面的渲染质量(Render Quality)有三档可调,选择高质量(high)时显示效果最好但是重排时间也最长,选择低质量(low)时重排时间可以大大缩短。默认使用高质量渲染。
- 重排扫描PDF页面时可以对页面文字进行水平较正(Auto Straighten),数字表示最大校正角度,默认此选项关闭(最大校正角度为0),开启之后重排时间会大大增加,文字版PDF请勿打开。
- 重排页面的对齐方式(Justification),有自动(auto)、左对齐(left)、居中(center)、右对齐(right)和两端对齐(full)可供选择。
- 重排多栏排版的文档时可指定分栏数(Columns)。
- 重排页面的字体黑度(Contrast)有5级可调,注意默认(default)字体黑度时重排速度最快。
- 支持0°、90°、180°和270°屏幕旋转,可使用90°旋转重排竖排版的文档。
手动切边:(视频演示)
如果遇到视频无法播放的情况请使用较新的Chrome或者Firefox浏览器重新打开本网页。
如果原始页面正文四周有污点或者旁注,会影响程序判断正文的缩进方式,自动重排经常会出现大段空白和断行。手动切边把正文四周切掉之后再重排可以避免这种情况出现,让重排后的文档排版更整洁。使用方法见视屏演示,按“Aa”键调出重排参数调整对话框,在切边(Trim Page)选项中选择手动切边(manual),使用五向键的确认键打开原始页面视图,首先通过五向键调整切边的左上角,确认左上角之后再调整切边右下角。确认之后重排即使用切边以后的页面。对于大部分文档,一般不需要每一页都做手动切边,如果当前页码是奇数页,之后遇到奇数页就会自动使用当前页面的切边信息。
翻页延迟:
重排处理需要很多CPU计算,再加上Kindle的CPU频率不是很高,所以重排一页大约需要3到5秒钟时间,具体视页面大小而定。但是阅读时软件可以预先重排处理下一页,这样读完一页再翻下一页就没有延迟了。想追求行云流水般翻页体验的朋友就不需要使用这个功能了。
软件安装:
已经发布的Kindlepdfviewer正式版v2012.10已经加入PDF/DJVU重排功能。目前Kindlepdfviewer只能在Kindle 2、Kindle 3和Kindle DX(G)上运行,安装之前请再次确认手中的设备能够被支持。
安装Kindlepdfviewer共分三步:
- Kindle越狱。到MobileRead论坛的这个帖子里下载越狱文件kindle-jailbreak-x.xx.x.zip (x.xx.x对应版本号)。把下载的ZIP文件解压缩之后选择对应设备固件的升级文件,比如Kindle 3 WIFI 固件版本3.4的设备应该选择update_jailbreak_0.11.N_k3w_install.bin或者更新版文件,将其拷贝到Kindle的根目录中。断开Kindle和电脑的连接,通过Menu> Settings> Menu> Update Your Kindle升级。当出现升级成功的提示表示越狱成功。将Kindle连接到电脑上,在Kindle的根目录中会多出一个linkjail的目录。如果越狱不成功,很可能是因为设备已经越狱过,请忽略此步,直接尝试下一步。
- 安装launchpad。安装前请先确认设备已经越狱。Launchpad是Kindle上的快捷键管理软件,用于启动Kindlepdfviewer程序。到MobileRead论坛的这个帖子 里下载launchpad的安装文件lpad-pkg-xxxx.zip (xxxx对应版本号)。 把下载的文件解压缩之后选择设备对应的安装文件,以Kindle 3 WIFI为例,应该选择 update_launchpad_0.0.1c_k3w_install.bin或者更新版文件,将其拷贝到Kindle的根目录中。断开Kindle和电脑的连接,通过Menu> Settings> Menu> Update Your Kindle升级。当出现升级成功的提示表示安装成功。将Kindle连接到电脑上,在Kindle的根目录中会多出一个launchpad的目录。
- 安装Kindlepdfviewer。稳定版下载地址:https://github.com/hwhw/kindlepdfviewer/downloads ,每日更新(Nightly build)的开发版下载地址:https://github.com/chrox/kindlepdfviewer/downloads/ 打开页面后选择Download Packages中的ZIP文件点击下载。在Kindle的根目录下创建customupdates目录(注意大小写),把下载的Kindlepdfviewer安装包拷贝到customupdates目录下,安装包不需要解压缩。断开Kindle和电脑的连接,在Kindle上按Shift-Shift-I安装Kindlepdfviewer,注意按键间隔不要超过0.7秒,如果按键生效屏幕左下角会出现^[Shift I]字样,等待安装程序完成屏幕左下角会出现Success提示。之后在Kindle上按Shift-Shift-空格三个键,会更新launchpad的快捷键列表把Kindlepdfviewer的快捷键添加进去。如果以上操作步骤都顺利完成,那么恭喜你已经安装成功。可以使用Shift-P-D按键序列打开Kindlepdfviewer。退出Kindlepdfviewer切换到原生系统请在文件管理器界面按Home键,查看更多使用说明请打开Kindlepdfviewer后按“H”键。
说明 : 稳定版 会积累一定的特性和bug修复后不定期发布; 开发版 使用项目最新代码每天自动编译,适合喜欢尝试新特性的朋友。
软件升级:
下载最新版Kindlepdfviewer软件包,把ZIP文件包拷贝到Kindle的customupdates目录下,然后断开Kindle和电脑的连接,在Kindle上按Shift-Shift-I即可升级安装Kindlepdfviewer。
软件卸载:
需要卸载软件请直接删除Kindle下的kindlepdfviewer目录, 使用lunchpad的uninstall文件卸载lunchpad,然后使用jailbreak的uninstall文件反越狱。
Bug报告:
大家使用软件时,欢迎把无法生成可读排版的情况作为bug报告给我,方便在后续的版本中进行修复。Bug报告请提供原始PDF文档或出现问题的页面,重排使用的参数截屏,并发送到我的邮箱:chrox@网易163邮箱,或者回复帖子
Kindlepdfviewer重排功能更新日志和Bug报告
。软件的完善离不开用户的bug报告,在此先行道谢。到此这篇pdfviewer(pdfviewer怎么修改)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/51022.html