用jquery插件实现pdf文件的在线预览,大概是怎么个思路
其实也就是简单的在浏览器中实现一个打开pdf文件,并有类似预览功能的边框。
其实在中国上经常见到类似的页面,在浏览器中打开pdf文档,可大部分都是由于版权的原因使用了一些很特殊的技术,自然很难模仿了。
即使有直接在浏览器打开的例子,也必须手动点击一下链接然后才能打开pdf文件。
如何直接打开,而不用点击链接呢?本以为自己对js很熟,也就使用js模拟点击,可就是不管用,没办法,只能在中国上继续寻找资料。
最终想不到代码却很简单。
最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了。
核心代码:成因分析 使用jquery.media.js就可以直接把一个连接到pdf文件的链接打
如何文件夹里预览pdf文件
利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免费的swftools.exe工具生成swf格式的Flash文件,网页中加载flexpaper免费开源工具(有广告)实现Flash文件的预览。
优点有效的保护的源文件及文件的复制,不可复制也是缺点。
源码是自己的,版权有保证。
缺点服务器上必须安装Office软件。
导出PDF文件本身是个打印过程,Excel页面格式未设置,会出现一张表格打印出多页来,阅读体验大大下降。
转换过程非常耗费资源,低配的CPU几乎能跑满,服务器卡死。
转换时间也非常漫长,这个时间主要是卡在了转换PDF上面。
转换完成服务器会遗留大量Excel、Word进程无法正常退出,有一些折中的解决办法,可以在网上搜索。
设置非常麻烦,本身微软官方的说法Office软件是客户端程序,在与IIS交互的时候本身就未设计。
所以很多程序员把精力浪费在了调试程序上面。
有两点在调试的时候需要注意。
一个是在web.config中设置 ,一个是在Office软件的设置中设置跟桌面交互。
严重浪费磁盘空间,一个文件还需要一个PDF文件、一个SWF文件,是否每次都转换,纠结是要硬盘空间呢还是要CPU的资源。
怎么在app中预览.pdf文件
pdf.js简介PDF.js 是基于开放的 HTML5 及 JavaScript 技术实现的开源产品。
简单说就是一个 PDF 解析器。
运用HTML5JavaScript(即pdf.js仅使用安全的web语言,不包含任何攻击者可以用的本地代码块)的PDF阅读器pdf.js,直接在标准的HTML页面上载入和渲染PDF文件, 还可以提高安全性(不需要安装第三方插件,安全性由浏览器保证),浏览器所做的安全措施已经为pdf.js提供了安全的运行环境。
其对IE和 FireFox浏览器的要求是IE9+, FireFox19+。
在线示例: http://jsbin.com/pdfjs-helloworld-v2/1/edit , http://jsbin.com/pdfjs-prevnext-v2/1/edit源码:https://github.com/mozilla/pdf.js官网:http://mozilla.github.io/pdf.js/pdf.js VS 传统浏览器读取pdf一般来说,PDF档案格式都是在浏览器中由外挂程式来描绘,通常是Adobe自己的PDF reader或来自其他供应商的描绘工具,但这些外挂通常无法充分运用PDF的特点,而且由于含有大量的受信任代码,使得Google Chrome浏览器必须运用SandBox沙箱原理,来检查PDF描绘工具是否遭到未知病毒感染。
使用adobe,必须在本地安装软件才能使用,而pdf.js不依赖环境、渲染速度快(测试过,确实很快)、安全性高。
pdf.js渲染PDF文件pdf.js渲染PDF文件的流程:Fetch pdf (url / buffer) ——> canvas ——> 渲染如果要深入pdf的渲染,需要去研究pdf.js源代码。
pdf.js可通过pdf文件的地址或pdf数据流获取pdf,具体实现是调用接口函数 PDFJs.getDoc(url/buffer)将pdf载入html,通过canvas处理, 然后渲染pdf文件。
网上给出的都是通过url来获取pdf的例子,而我在做项目的时候,后台(Python)要求是发pdf的数据流给前台,前台接收pdf的buffer,然后通过pdf.js来渲染。
当然最初尝试buffer出现了很多问题,具体问题总结如下:1)如何通过$.ajax接收后台发给前台的buffer数据;2)如何将buffer传给pdf.js来处理(这里我使用了viewer.js, 所以需要考虑的是如何将buffer传给viewer.js来处理);3)如何将pdf.js转换成pdf.js可以接收的buffer格式;(对应问题解决见代码注释)注:viewer.js是pdf.js的扩展,其将打印、翻页、缩放等功能进行了实现,且界面非常好看。
也就是说如果你引入了viewer.js,pdf的渲染和渲染之后的功能界面都已经帮你实现了,你不用自己去写界面。
先从官网:http://mozilla.github.io/pdf.js/ 下载代码,然后使用文件viewer.html , 我的html就是在viewer.html 的基础上修改的,下面我给出buffer的例子: 在线预览 {% load static %}{% get_static_prefix as STATIC_URL %} //convertDataURIToBinary() //不知道什么原因如果后台直接将pdf的数据流发给前台,得到的是乱码,将数据转换成 Uint8Array始终不成功 //所以就让后台将发送之前的数据流做 了base64编码发给前台,前台再解码得到的数据就不是乱码了。
var BASE64_MARKER = ';base64,'; var preFileId = {{mark}}; //viewer.js全局变量,传入buffer,回答问题2 var DEFAULT_URL $(document).ready(function(){ $.ajax({ type:"post", async: false, //ajax接收pdf数据流,注意dataType值的设置是否有错,如果不指定,jQuery将自动根据HTTP包MIME信息返回 //responseXML或responseText . 回答问题1 contentType:"application/pdf;charset=utf-8", url:"{% url netPan.File.views.browserFuf%}", data:{ id: preFileId }, success:function(data){ var pdfAsDataUri = data; //如果引入了viewer.js , 处理方法 var pdfAsArray = convertDataURIToBinary(pdfAsDataUri); DEFAULT_URL = pdfAsArray; // 只引入了pdf.js, 未引入viewer.js, 处理方法 // var pdfAsArray = convertDataURIToBinary(pdfAsDataUri); // PDFJS.getDocument(pdfAsArray).then(); 自己写pdf的处理函数 } }); });function convertDataURIToBinary(dataURI) { //编码转换,回答问题3 var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length; var base64 = dataURI.substring(base64Ind...
iOS PDF文件预览的几种方法
在ios系统中想要阅读PDF文件的话就需要利用一些软件去进行操作了,一般情况下我们都是利用一些市面上比较好的PDF阅读器去进行文件阅读! 前两天答主看到一款比较好的PDF阅读器,发现里面的功能挺多的,可以对PDF文件进行阅读,收藏,分享、编辑、标注、添加文件。
以及生成PDF文件等一些我们经常使用的一些功能。
这些不是重点,一般比较专业的PDF阅读器都会有这样的功能,但是答主最喜欢的是这款PDF阅读器中还带有文字识别功能,可以将手机中的图片或者照片识别转换为文字,这个是好多的PDF阅读器都没有的,所以今天答主就想推荐给你们使用(迅捷PDF阅读器) 回答不易,如有帮助,还清采纳...
windows7资源管理器中怎么预览word、pdf文件等
win7资源管理器无法预览word解决方法:在预览文件时,系统会调用这个文件类型默认的打开程序。
使用Word2010的“文件>打开”命令时,因为Word程序已经启动,所以无法再预览Word文件,故而出错。
虽然打开预览无法使用,还可在Windows资源管理器中预览文件。
打开Windows资源管理器,在工具栏右侧,按一下“显示预览窗格”按钮。
找到要预览的文件,单击选择,预览窗格即会显示文件内容。
移动端在线预览pdf文件的插件
想要在移动端进行编PDF文件的预览其实很简单,只要我们下载一个PDF阅读器就可以对它进行预览了,无论是安卓系统还是苹果系统,我们都可以轻松的将PDF文件进行浏览!这款阅读器使用起来呢很方便,无论是什么PDF文档他都可以对它进行打开浏览,可以根据顾客的需求最大程度上满足客户的需求,无论是阅读的方式还是浏览的技巧,这款阅读器都是一款不错的软件,不仅支持一定端的阅读,在pc端同业也支持!以上就是小编的推荐的软件,小伙伴们可以下载试一试,肯定会对你有所帮助的!
转载请注明出处51数据库 » jquery 预览word pdf文件内