导航:首页 > 文档加密 > 制作pdf阅读器

制作pdf阅读器

发布时间:2023-05-14 16:34:34

‘壹’ 制作安卓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 没有这个问题。

‘贰’ 可编辑的pdf阅读器有哪些

可编辑的PDF阅读器推荐使用风云pdf阅读器,拥有完整的PDF编辑功能,轻松搞定PDF文档阅读、编辑、 注释、转换等众多实用功能,操作简单,效率更高,功能丰富且实用,可以PDF细节调整,使用场景广泛!
功能介绍: 1、风云PDF阅读器提供PDF审阅功能,可以对文件添加批注。 2、可以在查看工程合同的时候添加批注。 3、可以在查看工程造价书的时候添加标注。 4、提供丰富的编辑功能,可以直接添加文本内容,可以添加图形内容, 可以添加图章。 5、可以在文本任意位置标记,也可以对段落内容加密。 6、支持签名设置,如果审核通过就可以添加数字签名。 7、提供页眉页脚设置功能,在软件界面立即设置输入页脚文字。 8、支持水印设置功能,可以对当前的工程合同设置水印。 9、支持页面修改功能,可以删除多余的页面,可以插入新的页面。 10、提供展平注释、汇总注释、导入注释、显示注释、显示注释列表等功能。
操作步骤如下: 1、打开浏览器搜索“风云PDF阅读器”然后点击下载。 2、安装好之后打开阅读器,然后点击需要阅读的pdf文件打开。 3、文件打开之后点击“文档”就可以直接进行文件的阅读和编辑了。
下载链接:风云pdf编辑器。

‘叁’ 福昕阅读器怎么把多张照片转为pdf

1、安装福昕PDF阅读器,安装时把福昕PDF虚拟打印机勾选上。系统出现福昕PDF虚拟打印。
2、选中要制作PDF文件的图片。
3、在上步骤游兄选中的图片中图标上右击,弹出快捷菜单。选择“打印”。弹出“打印图片对话框”。
4、在弹出“打印图片对话框”中打印机选择“Foxit Reader PDF Printer”也就是早锋福昕PDF虚拟打印机。
5、单击“打印图片对话框”中的“打印”神睁袭。
6、在弹出对话框,选择要保存的目录,然后单击”保存“。开始把图片打印成Pdf格式。
7、打开刚制作的PDF文件,可以看到前面选的5张图片已经合成1个PDF文件。

‘肆’ PDF要怎么制作啊

PDF格式文件的制作

----现在可以利用许多种工具来制作PDF格式文件,例如MicrosoftPublisher和AdobePageMaker等,但是用AdobeAcrobat最有效、可靠和便捷。Windows95/98下安装AdobeAcrobat3.0后,可按以下典型过程创建PDF文件:

----1.将应用程序以PostScript形式存放在磁盘中;

----2.执行"开始"*"程序"*"AdobeAcrobat"*"AdobeAcrobatDistiller3.0";

----3.找到并打开所创建的运李PostScript文件;

----4.确定好位置并将该文件(原扩展名为ps)保存为PDF格式;

----5.用Acrobat的PDF阅读器(如AcrobatReader或AcrobatExchange)打开创建的PDF文件。

----为减少以上步骤以提高效率,在Acrobat3.0中还包括有一个工具AcrobatDistillerAssistant。在一个应用程序内部,它主要起到两方面的作用:

----1.打印机控制面板里的打印驱动程序;

----2.AcrobatDistiller和Acrobat阅读器之间的界面。

----这样用户就可以将一个文档打印到该工具中,它会替您自动完成包括创建PostScript文件、启动AcrobatDistiller,并且将应用文档转化为PDF格式,以及打开Acrobat的PDF阅读器等其他任务。为保证随时使用DistillerAssistant,它可设在"启动"菜单下。

----Adobe公司还提供了一个工具,它可使您在MSWord中直接将文档按用户的要求自动转化为PDF文件。

----把PDFMaker安装后,当运行MSWord97时,便会在"File"菜单里出现一个者悄悄新的项"CreateAdobePDF"(内含两个子项),这就在Word中可将编辑完成的文档转化为PDF格式。同时还可以通过选取"File"*"CreateAdobePDF"*"Preference",来对PDF文件转化过程中的某些参数进行必要的设定,以达到所要求的效果。而要真正实现这些功能,还需要有PDFWriter3.0(或更高)打印驱动程序与AcrobatDistiller3.0(或更高)的配合才能首渣完成。这两项内容包含在AdobeAcrobat3.0中,通过将其安装才能获得。另外,PDFWriter的特点是可将一般文档快速地直接转换为PDF格式,但PDFMaker中的其他一些功能如书签、超链接和注释等高级特征,却因此不能被完全地保留下来;而Distiller则是通过先将Word文档打印为一个PostScript文件,然后再"提取"这种扩展名为ps的文件内容制成PDF文件,它可仍然保存那些在文档编辑和Internet中广泛使用的高级功能。另外,由于在MSWord97中使用的宏语言不同于老版本Word中的宏,所以PDFMaker不能用于Word6.0中。

----还应当注意的是,为建立PostScript文件,DistillerAssistant必须使用一个真正的PostScript打印驱动程序,例如MicrosoftPostScript打印驱动或AdobePostScript打印驱动(AdobePS)等。因为DistillerAssistant在创建PDF过程中不仅要使用有关PDF内容的选择,同时也要使用打印驱动程序的一些选择内容。

----因此,AdobeAcrobat3.0是基本的,只要能够打印成PostScript文件(即安装有PostScript打印驱动),就可以在应用程序中通过将打印选择命令设置为DistillerAssistant(或者AcrobatDistiller3.0),制作出相应的PDF格式文件来,而不一定像在MSWord97中那样,通过安装PDFMaker在"File"菜单里生成专门的"CreatAdobePDF"项。例如,在MSExcel和MSPowerPoint等应用软件中,也完全可以制作出相应样式的PDF文件来。老大,不用制作吧,保存的时候保存格式选成PDF就可以了。

‘伍’ 制作安卓PDF阅读器:七、实现多实例打开、文档目录树

无论什么平台,任何查看器都理应支持多实例模式。不仅仅要支持多实例模式,还要可以切换到单实例模式,而且在多实例下,在外部App重复打开同一文件,可跳转至已有实例,而不会重复打开相同的多实例,这便是设计。

为此,需大量运用 static 全局变量。不必担心内存泄漏,只要不崩溃,就可以在 onDestroy 中释放引用。若是不慎崩溃,整个虚拟进程都被关闭了,又有什么可担心的呢?

从桌面打开主界面有两种选择:

主界面UI

底栏:【前进,后退,搜索,书签大纲,宫格更多】

宫格更多 第二底栏(底栏之上)
宫格:【夜间模式,历史记录,书签,设置,缩略图模式,转屏,朗读,页面跳转,进度条,小缩略图,左侧小缩略图,右侧小笔记】

底栏:【退出程序,退离程序,返回】

尼玛这些慢慢做,够我做一年……

先从底栏做起吧,然后定制底栏,然后宫格及其变形动画。

燃鹅时间有限,所以可能取消动画,取消自定义,速战速决……

优化 TellH / RecyclerTreeView :

其实 listview 也能达到类似的效果(见下方),不过既然有人(似乎是抖音安卓团队)专门抽离出了libarary,就不必再造轮子了,改进就行。寥寥二三文件就不必新建库模块了,源码拉直接拉进去,简单又省事。

目录对话框:viewpager,并排【书签,目录,注释列表】

Dialog + viewpager + FragmentPagerAdapter + 以上三个Fragment

需注意 FragmentPagerAdapter 的构造参数。应当传入 getChildFragmentManager() 而不是 getSupportFragmentManager(),否则因为这里是 Dialog 嵌套 Fragment,传全局的FragmentManager会导致APP崩溃(No view found for id … for fragment … 异常)。

既然决定使用 Dialog 了,不妨直接上 DialogFragment。后者的配置更加灵活,既可以当做 Dialog 弹出对话框,又可以选择将之当作普通的 Fragment ,直接加载进入主界面布局。

对话框界面设计分三层:

Toolbar【各种小按钮】
viewpager【书签,目录,注释列表】
TabLayout【书签,目录,注释列表】

拉取PDF目录,需要用到的API有:FPDFBookmark_GetFirstChild、FPDFBookmark_GetNextSibling、FPDFBookmark_GetTitle、FPDFBookmark_GetDest,没有编辑功能。

其实 PDF 的书签目录除了页码外,还可以包含一些视图参数,大概是缩放、页面位置这些。既然PDFium不支持编辑书签,那暂时就这样。

记录一下复用这个目录树对话窗口引发的recyclerview不响应notifydatasetchanged调用的bug。(解决fragment嵌套viewpager再嵌套recyclerview导致recyclerview无法正常更新的BUG。)

dismiss并复用后,点击列表中的目录,目录不再展开,recyclerview不更新视图。但是 滚动 一下recyclerview(即使条目很少无法真正滚动,向上划一下也会有效果。),发现视图更新了,这证明逻辑处理并无问题。那么问题出在哪呢?

答案是 viewpager 的adapter不能被复用。关键在于这个adapter传入了一个getChildFragmentManager()对象。而这玩意儿在对话框dismiss后就会立即失效。所以即使视图是复用的,第二次的onCreateView也需要重新给viewpager设置adapter。

‘陆’ 怎么利用福昕阅读器把多个WTF文件做成一个PDF文件

1、首先用软件打开要编辑的PDF文件,然后点击“特色功能”--“PDF编辑工具”。

‘柒’ 电脑上看,pdf文件用什么软件好

下载阅读器打开PDF文件:
1、Adobe acrobat和Adobe Reader
2、福昕PDF阅读器
3、极速卜液梁PDF阅读器
4、PDF阅读器绿色版
5、克克PDF阅读器
6、foxit reader
7、SmartPDF阅读器等型运

以上阅读器都可以,但是Adobe acrobat较普遍,而且很多软件跟这埋数个也是兼容的。

‘捌’ Foxit Reader(福昕PDF阅读器) 怎么制作pdf文件

首先判断你的PDF文件性质:扫描得到的PDF文件, PDF软件直接制作的文件。
软件:ADOBE READER, Foxit Reader(福昕PDF阅读器)
我用的是FOXIT,下载FOXIT编辑器(注意,如果只下载阅读器,不带编辑功能)
以上两种PDF都可以用直接插入文字的方法,如图:图片中,右上角的T,就是输入文字的地方。输入后会自动出现在PDF文档左上角,拖动调整位置就可以了。

如果你的PDF是直接可编辑的,那么用阅读器就可以编辑。
如有疑问,在线找我。

‘玖’ Foxit Reader(福昕PDF阅读器) 怎么制作pdf文件

可以试下Foxit Phantom,这款滚轮软件只大销信有9M,PDF功能很全面。官网下载地址是: http://www.fuxinsoftware.com.cn/downloads/ 安装完成后,最简单制作PDF文档的方法就是先在Word里面编辑好你要的文档,然后再选择“文件/打印”即可通过Foxit Phantom Printer将斗坦文档转换为PDF格式。此外还可以用这款软件对现有的PDF文档做编辑操作。

‘拾’ Adobe reader PDF是什么软件

首先 你问的问题有两个含义,可能连你自己都不知道:

第一,adobe reader 是一款软件,Adobe Reader(也被称为Acrobat Reader)是美国Adobe公司开发的一款优秀的PDF文件阅读软件。文档的撰写者可以向任何人分发自己制作(通过Adobe Acobat制作)的PDF文档而不用担心被恶意篡改。

Reader 是用于打开和使用在 Adobe Acrobat 中创建的 Adobe PDF 的工具。 虽然无法在 Reader 中创建 PDF,但是可以使用Adobe Reader查看、打印和管理 PDF。在 Reader 中打开 PDF 后,可以使用多种工具快速查找信息。如果您收到一个 PDF 表单,则可以在线填写并以电子方式提交。如果收到审阅 PDF 的邀请,则可使用注释和标记工具为其添加批注。使用 Reader 的多媒体工具可以播放 PDF 中的视频和音乐。如果 PDF 包含敏感信息,则可利用数字身份证对文档进行签名或验证。

简单的说,reader就是一款专门用来打开PDF文档格式的软件。

第二,关于PDF,PDF全称Portable Document Format,译为可移植文档格式,是一种电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。同时PDF还有多种英文缩写的含义。

PDF全称Portable Document Format,译为可移植文档格式,是一种电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。这一性能使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件开始使用PDF格式文件。PDF格式文件目前已成为数字化信息事实上的一个工业标准。

PDF从本质上说,也是一种格式,但因为更方便,更快捷,更灵活,所以更通用。

朋友,所以说,reader 是一款专门阅读PDF文档格式的软件,PDF则是一种专门的电子文件格式。

阅读全文

与制作pdf阅读器相关的资料

热点内容
程序员那么可爱第几集在重庆相遇 浏览:673
上班两公里源码 浏览:817
南宁溯源码燕窝订制 浏览:933
在个人文件夹中新建文件 浏览:445
中国国家地理pdf下载 浏览:107
几套房子抵押可以解压其中一套吗 浏览:569
微爱app室外地板怎么装饰 浏览:231
辽宁省医保如何用app转 浏览:311
钟表cNc编程招聘 浏览:546
均线pdf 浏览:921
手机破解加密的压缩包 浏览:429
dnf程序员分析 浏览:365
外星人适合编程吗 浏览:205
phpcurl302跳转 浏览:843
奔放的程序员我的 浏览:714
服务器磁盘满了文件删不掉该如何处理 浏览:847
压缩弹簧展开长度 浏览:509
如何共享国外app 浏览:687
淘宝app如何扫描图片 浏览:594
反编译作业帮 浏览:856