大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
PDF阅读器概述Pdf阅读器是一款阅读Pdf文件和转换Pdf文件的工具。能够将当前页面转换成图片,支持的格式有:Bmp、Jpg、Png、Tif、Gif、Pcx。能够将页面转换成文本文件.支持目录功能。支持热链接。具有文本选择和查找功能。能够打开带密码的Pdf文档。可以用来查看和打印 便携文档格式 (PDF) 文件。您可以在大多数主要的操作系统上查看通过Foxit PDF Creator 、Foxit Phantom以及Adobe Acrobat以及更多应用程序创建的PDF文件。
饶阳网站建设公司创新互联,饶阳网站设计制作,有大型网站制作公司丰富经验。已为饶阳1000多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的饶阳做网站的公司定做!
之前一直用智器,感觉不错,专注阅读,不过在手机上用多看阅读比较多,界面动画切换漂亮,而且PDF重排的性能确实也不错。以下是他的介绍。支持PDF的单页、适合宽度、双页等多种阅读模式;
● 支持PDF页面放大缩小以及切边等操作;
● 支持PDF图文智能重排;
● 支持PDF文字拷贝、查字典、书摘、批注、搜索、微博分享;
● 支持带密码的PDF文档。
PDF (Portable Document Format) 文件格式是电子发行文档的事实上的标准,Adobe Acrobat Reader和Foxit Reader 是一个查看、阅读和打印和管理 PDF 文件的最佳工具。而且它是免费的。
pdf阅读器目前Adobe及Foxit 的最新中文版PDF阅读器版本是Adobe Reader 9、Foxit Reader3.1,国内最常用的是简体中文版PDF阅读器 Adobe Reader 7、Foxit Reader2.3\3.0\3.1.
最佳经验
本文由作者推荐
01
安卓手机打开.pdf文件:在百度手机助手或者在别的第三方下载工具里下载ireader,使用ireader软件打开。首先下载ireader软件安装在手机上,在手机文件管理器里找到pdf文件。打开该文件,这时候自动会默认使用ireader软件打开。这时候会提示需要安装pdf组件,点击确定之后会自动安装pdf组件。安装好之后,再次在文件管理器内打开pdf文件,这时候就可以阅读该文件了。
PDF是由Adobe Systems用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。
安卓手机打开.pdf 文件的方法:
1、首先在百度手机助手或者在别的第三方下载工具里下载ireader。
2、下载下来软件之后安装在手机上,在手机文件管理器里找到pdf文件。
3、打开该文件,这时候自动会默认使用ireader软件打开。这时候会提示需要安装pdf组件。
4、点击确定之后会自动安装pdf组件。安装好之后,再次在文件管理器内打开pdf文件。这时候就可以阅读该文件了。
安卓(Android)是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。
在别的别的第三方下载工具里下载ireader,如图所示。
请点击输入图片描述
下载下来软件之后安装在手机上。在手机文件管理器里找到pdf文件。
请点击输入图片描述
打开该文件,这时候自动会默认使用ireader软件打开。这时候会提示需要安装pdf组件。
请点击输入图片描述
4
点击确定之后会自动安装pdf组件。安装好之后,再次在文件管理器内打开pdf文件。这时候就可以阅读该文件了。
跟安卓不安卓没关系。是有的浏览器没有打开pdf功能,就只能下载了。当然你用过chrome就会发现它提供了多种选择,可以默认打开也可以提示下载。所以说pdf实质上跟安卓系统没直接关系,在于使用者的系统是否有对应的程序和功能。
我为什么要开启这个系列,努力试着从源头开始,用 PDFium 制作一款阅读器?有人喜欢问这个做了有什么用,这个是唯一的吗?
当然不是唯一的,底层技术更不是我的。不过我认为在维护者的推动下,PDFium 越来越完善,功能越来越多,不 真正 拿来做些什么实在是可惜了。另一个重要原因则是,其他APP要么臃肿或者简陋,要么用着磕手、滑动卡顿、误触频发,而且大多还不免费。( 更正,近年来倒是多了好多免费的PDF阅读器 )
目标期望:
热身运动:当检测到单击( GestureDetector )时,若点击处存在超链接,则打印出超链接的对象。
头文件:fpdf_doc.h
需要将屏幕坐标转换为页面坐标,然后再次在native层转换为所谓的user space、page space。别问我那是啥我也不知道。不过在论坛提问后,有人替我指出了相关文档所在,有时间去看看!
屏幕坐标:[event.getX(), event.getY()]
页面坐标:先前提过将整本PDF当作一张超级大图,subsampling-scale-imageview 有一系列的 viewToSource 坐标转换方法。屏幕转换得到 source 坐标后,减去点击页面的左上角坐标,就是页面坐标。
原始页面坐标需用 FPDF_DeviceToPage 再次转换,才能传给FPDFLink_GetLinkAtPoint,获取坐标处的链接指针。
超链接对象统一返回字符串,可以是Uri地址,也可以是页码 @页码 。
热身运动2:在单击处获取一个英文单词或者汉语词组,需要用到安卓的 BreakIterator。
头文件:fpdf_text.h
首先实现 nativeGetCharIndexAtCoord 方法,获取单击附近的文字索引,需进行同样的坐标转换。
若返回的文字index大于等于零,则此 index 指向该页面全部文本当中的一个字符。全部文本用 FPDFText_GetText 获取(实现 nativeGetText):
接下来就可以用 BreakIterator 分词了:
与绘制PDF本身差不多,不过 bitmap 换成 rect 而已。用到的API依次是FPDFText_CountRects、FPDFText_GetRect。
直接将选框覆盖绘制在前。若要绘制在后面的背景上,就需要三层透明视图了,那么加载铺块和缩略图的时候就要用透明色清空 bitmap,页面的白色背景等也需要另外绘制(Google PDF Viewer应该就是这样,还给背景加了阴影)。这些较为复杂,到时候再说。
有个问题可能需要解决:同一行的选框,部分没有合并。
都是小事儿,暂时不在这上面花时间。
之前做过类似的事情,将普通 TextView 自带的文本选择功能禁用了,然后用API自己做出一个来,包括单击选词,长按托选,放大镜等等。所以相关的内容还是熟悉的。
绘制 Selection Handle 可以用 AppCompat 支持库中的图标资源:
控点的触控操作也很简单,在 Action_Down 中检测落点是否在其中一个 handle 内。若是,则在 Action_Move 中一边移动该 handle,一边检测新的字符索引,作为文本选择的新边界。
由于PDF的复杂性,页面上的字符索引可能间杂排列,比如头一段开头是100,下一段开头50,再下一段150。这就造成先前简单的选择系统“失效”了:
没什么解决方案,API 就这么点。而且,静读天下、Google PDF 查看器都是这样的,唯有 ezpdfreader 没有这个问题。