《PDF技术在移动平台上的应用研究 优秀专业论文.docx》由会员分享,可在线阅读,更多相关《PDF技术在移动平台上的应用研究 优秀专业论文.docx(8页珍藏版)》请在第一文库网上搜索。
1、PDF技术在移动平台上的应用研究摘要:本文通过先提出PDF显示技术在移动平台上可能遇到的问题,提出了相应的解决方法。并介绍了福昕PDF显示引擎的功能特点。关键字:PDF;移动平台;1 .引言现在,我们的日程工作和学习中越来越多需要处理PDF文档,而随着智能手机平板的普及,同时也越来越多的PDF文档需要在移动平台上进行阅读和处理。如何开发出一个好的PDF应用软件,在开发的过程中都需要注意些什么,如何解决,本文主要通过多年的开发经验提出了一些方法。2. PDF技术在移动平台的新问题和解决方法1 .问题:PDF文件复杂度高,PDF应用程序容易在翻页或者某个操作中卡死。应对:因为PDF格式可以支持结构
2、非常复杂的文档,有些PDF文档内会存有尺寸很大的高清图片,或者上万条或更多的图形黑”,当每完成一个“小规模”工作时应用都停下来花时间响应用户的UI操作。这样就避免发生卡死现象。2 .问题:移动嵌入设备相对桌面PC,显示屏幕比较小,而很多PDF页面都比较大,在小小的几寸屏幕上要看完PDF文件一行的内容,需要来回移动页面或是把页面缩得很小才可以查看完整的内容。应对:因为PDF是版式文件,对于现在五花八门分辨率的手机、平板来说。想要自适应各种屏幕的话,就需要能够把版式文件用流式文件的方式重排后再显示出来。因为大多数的PDF文件在转换生成时都丢失了流式信息。这就需要对PDF进行版式分析,依靠智能算法对
3、PDF进行再排版,适应各种分辨率屏幕。这项技术很有难度,因为在重新排版后版面是否合理,完全取决于这个算法对版式的分析是否接近真实的情况。3 .问题:移动嵌入设备上,可用内存相对紧缺,所以出现内存溢出的异常情况的概率相对较高,当出现内存不足时如何进行恢复处理?应对:需要有完善的异常处理机制,在出现异常的时候可以让应用很好的做异常恢复处理,让程序在用户不知觉的情况下恢复到正常。最好能提供固定内存使用模式,PDF引擎使用的内存完全的控制在一个额度内,当超出这个额度时,触发异常,PDF引擎记录下当前文档现场状态,然后释放所有无关内存,再用最小的内存开销恢复到现场状态,这样处理用户是无感知的。极大的提升
4、了用户体验。4 .问题:如何在小屏幕下最大比例显示页面内容大多数PDF文件的版面,页面的上下左右的边缘都是没有内容的。在移动嵌入平台下这些空白位置对屏幕的占用是很浪费的。可以通过PDF解析引擎可以获取得到容纳页面所有内容的最小矩形边界。有了这个最小边界,在设备屏幕比较小的情况下,就可以尽量以比较大的缩放比例来显示页面,同等条件下得到更好的用户体验。5 .问题:图片显示优化在移动嵌入平台对于PDF文件内的图片显示,提供了插值计算的选项。可以让应用程序在不同处理速度的设备上,在显示速度和显示效果之间做很好的平衡,达到最好的用户体验。3.福昕PDF引擎移动平台功能特色页面显示福的显示引擎具有速度快,
5、占用内存小,显示效果好等特点,特别适合在移动嵌入平台上开发应用程序。1 .主要功能介绍提供了丰富的编程接口,满足应用程序开发的需要.主要如下:1)将PDF页面渲染到位图,并支持步进式操作2)将PDF页面进行快速渲染,同时也支持步进式操作,让用户可以快速显示页面缩略图3)丰富的坐标转换函数,应用程序可以很方便的实现PDF页面坐标到设备坐标的转换4)提供了获取页面内容边界的功能,应用可以以最大的比例显示页面2 .功能特色1)最大化显示内容:正常的一个PDF的页面的边缘都有没有任何内容的区域,不过嵌入设备屏幕都比较小,可以说是寸土寸金,这些空白区域都是可以用来做PDF内容显示的区域。例如下面两个图片
6、,很好的说明了内容边界信息获取的效果,左边的图片是在没有拿到页面内容边界的情况下,想要在屏幕上显示一个页面所有的内容,就只能把页面缩得很小。第二幅图是拿到了页面的内容边界,所以如果应用程序想在屏幕上显示一个页面所有的内容,就可以把页面放大到能显示所有内容的最大比例,这样的情况下,同样的屏幕大小,用户可以有更好的阅读体验。IROQLine1:Thisisatestfile.Line2:Thisisatestfile.Line3:Thisisatestfile.Page2Line1:Thisisatestfile.Line2:Thisisatestfile.Line3:Thisisatestfil
7、e.2)显示效果和速度的最好平衡Foxitembeddedsdk提供了是否对图片进行插值计算的选项,让应用程序可以在他们开发的应用程序上对速度和显示效果做一个很好的平衡。这先介绍一下图片缩小显示过程的背景知识,在桌面平台上,PDF中的图片进行缩小显示的时候,不论多大的图片,都进行差值的计算,就是每个像素点都是通过这个点周围儿个像素点的值,通过一定的算法得到的。这样做可以减小缩小图片的失真度,但是需要消耗比较多的时间。在嵌入平台上,CPU资源就相对比较紧缺,这样的计算可能会导致显示速度很慢,为了加快显示的速度,我们可以牺牲一些显示的效果,对于比较大的图片,显示的时候我们可以不采用插值算法来进行。
8、不过不同硬件处理速度不一样,对图片大小的限制也不一样。FoxitembeddedSDK提供了编程接口,让外部应用可以根据自己的硬件情况对需要进行插值计算的图片尺寸进行限制,让应用程序可以在显示效果和显示速度上做一个最好的平衡。下面的图片说明了在使用了foxitembeddedSDK对插值图片大小参数进行设置后,应用程序速度仍然可以运行得很快的情况下,不同显示效果的比较,左边的是没有对图片进行任何插值计算的情况下的显示效果,右边是对图片进达到的良好显示效果。行插值计算后,页面重排很多PDF文件页面的原始大小,都有一本书大小,例如有A4纸张的大小,而大多数移动设备的屏幕都比较小,把原始的PDF页面
9、缩小到嵌入设备的屏幕上显示的时候文字就显得太小了,如果把页面放大显示,又需要通过来回移动页面才可以看完一行的内容.用户体验非常不好。时町02:43pmDemoReflowTextRenderingModeThetextrenderingmode,Tloutlinestobestroked,filledofthethree.Stroking,fillingastheydoforapathobject443,“ClippingPathOperatferentway.Thegraphicsstatwidth,areinterpretedinuseNote:ThetextrenderingmoSect
10、ion5.5.4faType3Fonts)而PDF文档是版式文档,并没有办法像流式文档那样可以在自动根据页面的大小进行排版,让页面的内容可以根据页面显示的宽度进行换行显示。FoxitEmbeddedSDK的页面重排功能解决了这个问题。页面重排功能,实现了对PDF页面的重新排版功能,可以根据页面的显示宽度对页面的内容进行重新排布。应用程序的开发人员利用SDK就可以很容易的开发出在小屏幕显示设备上有良好阅读体验的软件产品。下面的软件界面截图的给大家展示了对页面进行重排后的不同阅读效果。内容进行了自动换行,用户可以很方便的进行阅读,不用每看一行都要进行一次页面的移动IE8:17amDemoReflo
11、w525TextRenderingModehetextrenderingmode,Tnode,determineswhethershowingtextcausesglyphoutlinestobestrokedfilled,usedasaclippingboundary,orsomecombinationofthethree.Stroking,filling,andclippinghavethesameeffectsforatextobjectastheydoforapathobject(seeSections4.4.2,t*Path-PaintingOperators,0and4.4.3,ClippingPathOperators”),althoughtheyarcspecifiedinanentirelydifferentway.Thegraphicsstateparametersaffectingthoseoperations,suchaslinewidth,areinterpretedinuserspaceratherthanintextspace.