PDF.js 详情解说
pdf.js资源下载
自定义默认加载的pdf资源
- 在web/view.js中我们可以通过
DEFAULT_URL设置默认加载的pdf。通过上面代码我们也可以看出来可以通过后缀名来指定加载的pdf。如:
http://mozilla.github.com/pdf.js/web/viewer.html?file=compressed.tracemonkey-pldi-09.pdf.
这样我们代码获取到file字段就会自动覆盖我们默认的pdf。
加载其他服务器上的pdf(远程加载)
- 这个功能是可以实现的,但是并不是默认开启的。pdf.js和其他的JavaScript运行机制是一样的。所以无法与request请求交互。但是我们还是可以通过在我们的服务商使用cors或者设置代理向pdf.js提供pdf预览的。
支持的浏览器
- 插件在火狐35版本及以上是不支持的。pdf.js是火狐自19版本的一部分。扩展名是由开发商和主要用于将使用最新版本的pdf.js图书馆一个年长的Firefox版本。用户应该卸载扩展,恢复pdfjs.disabled配置设置和设置选项->应用选择PDF文件的内部浏览器继续查看PDF与pdf.js Firefox。
如何开始一个pdf.js项目
首先我们得准备返回值和安装环境。就是pdf.js;其次我们得属性pdf.js内部运行机制;最后提交请求
给pdf添加注释
到目前为止,pdf.js还没有提供修改pdf的api,pdf.js主要是让我们能够预览。所以加注释目前无法实现。
精简版pdf.js
github上 gulp minified可以下载到精简版
pdf.js没有正确加载或报错吗
答案是会报错。这些问题是用来跟踪用户使用状态的。我们可以尝试通过问题追踪到问题根源
pdf已损坏,pdf.js还会加载吗
会的,pdf.js会尝试修复并显示pdf文档的
优化pdf.js
pdf.js加载速度取决于每页的容量。至于页数并不影响我们的加载速度。下面我可以给大家几点使用pdf.js优化的建议
1、避免使用高分辨率的图像,150 dpi的分辨率扫描的图像应该足够的屏幕,尤其是低动力装置;
2、尝试使用JPEG的RGB颜色空间的彩色图像编码照片;
3、避免使用高性能的效果
4、避免使用PDF生成器(或不创造内容),产生无效的PDF输出(例如LibreOffice创建一个向量元素/图片不了解小很多的图像)
5、如果有这样的设置,使用网站优化的PDF输出线性化;
6、固定或不产生损坏的PDF格式不符合规范的pdf32000
小案列
<li><a href="viewer.html?name=a.pdf" target="pdfContainer" onclick="showPdf(true)">0001_pdf</a></li>
<li><a href="viewer.html?name=b.pdf" target="pdfContainer" onclick="showPdf(true)">0002_pdf</a></li>
<script type="text/javascript">
function showPdf(isShow){
var state = "";
if(isShow){
state = "block";
}else{
state = "none";
}
var pop = document.getElementById("pop");
pop.style.display = state;
var lightbox = document.getElementById("lightbox");
lightbox.style.display = state;
}
function close(){
showPdf(false);
}
</script>
遗留问题
- 研究半天没有解决在html中的pdf.js跨域问题。网上教程都是指出php解决方法、在html上以后有机会再更新!
PDF.js 详情解说的更多相关文章
- 在线浏览PDF之PDF.JS (附demo)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html#skill 下载地址:http://mozilla.gith ...
- 移动端嵌入pdf.js远程请求pdf出现(206)
最近在做移动端的开发,需要嵌入pdf进行预览.看了很多的js组件后选择了pdf.js:使用起来还是比较方便的,至于使用网上有很多的教程. 但在使用过程中出现了如下一个问题(我做的是IOS系统): 问题 ...
- pdf.js pdfdom.js使用(转)
开篇语: 最近工作需要做一个借款合同,公司以前的合同都是通过app端下载,然后通过本地打开pdf文件,而喜欢创新的我,心想着为什么不能在线H5预览,正是这个想法,说干就干,实践过程总是艰难的,折腾了3 ...
- pdf.js在IIS中配置使用笔记
最近在手机App开发Android版本时候遇到需要显示PDF文件的需求,记得之前直接使用系统浏览器或者WebView就可以显示,但是现在不可以了,只能另寻其他办法. 最终找到PDF.JS来进行实现,但 ...
- 使用PDF.JS在线查看PDF
过程简单粗暴. 第一步:下载源码https://github.com/mozilla/pdf.js 第二步:将源码拷贝进项目中,可以新建一个PDFShow文件夹存放代码 第三步:修改viewer.js ...
- PDF.js
http://www.linuxidc.com/Linux/2015-06/118728.htm http://blog.csdn.net/xiangcns/article/details/42089 ...
- pdf.js使用教程
pdf.js框架的魅力所在,为其为HTML5实现的,无需任何本地支持,而且对浏览器的兼容性也是比较好,要求只有一个:浏览器支持HTML5就好了!(不过对于低版本的IE,就只能节哀了!) 据说IE9以上 ...
- [pdf.js]预览pdf时,中文名称乱码的问题
在项目中使用了pdf.js的方式预览pdf,但针对中文名称的时候会出现乱码,导致找不到该文件而出现错误. 解决办法 <script src="viewer.js" chars ...
- 文档在线预览开源实现方案二:OpenOffice + pdf.js
文档在线预览的另一种实现方式采用的技术栈是OpenOffice + pdf.js, office文档转换为pdf的工作依然由OpenOffice的服务来完成,pdf生成后我们不再将其转换为其他文件而是 ...
随机推荐
- MyBatis从入门到精通(十):使用association标签实现嵌套查询
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解使用associati ...
- wcf服务编程(二)
地址: 1.命名管道:用于同一台机器的跨进程通讯.URL表示方式为:net.pipe:// ;由于是在同一台机器的不同进程间通讯,所以不用定义端口号.
- 关系型数据库MySql简介
什么是关系型数据库? 数据库就是用来存储数据的仓库,是一种特殊的文件. 根据存储的数据不同,划分为关系型数据库和非关系型数据库. 关系型数据库就是指 建立在关系模型基础上的数据库,通俗来讲这种数据库就 ...
- 分享几个能用的editplus注册码/2018年序列号
注册名:host1991 序列号:14F50-CD5C8-E13DA-51100-BAFE6 注册名:360xw 注册码:93A52-85B80-A3308-BF130-40412 ...
- [Lydsy2017年4月月赛]抵制克苏恩题解
考试的时候以为就是简单的概率期望题,考完后知道是简单的概率期望DP题,完美爆零. 这道题数据范围很小,很容易让人想到状压,不过貌似没什么可压的.那么只能说明这道题复杂度很高了,状态数组f[o][i][ ...
- 双剑合璧——掌握 cURL 和 Dig 走天涯
如今随着大量的应用转移到网络,作为开发者,会经常做一些通讯测试,例如从网站获取信息.模拟用户向网站提交或者上传数据,查看应用通讯情况等等,现在变成了非常重要的任务. 一起来认识 cURL cURL 是 ...
- [转载]linux下清除Squid缓存的方法记录
在日常运维工作中,只要用到squid缓存服务,就会常常被要求清理squid缓存. 比如公司领导要求删一篇新闻,新闻是生成的静态.运维人员把服务器上静态的新闻页面删除了后,不料代理服务器上缓存还有.缓存 ...
- Spring_简单入门(学习笔记1)
Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架. 具体介绍参考 一:IoC(Inversion of Control)控制反转,将创建对象实例反转给spri ...
- 二、SQL Server 2008附加数据库时出错的解决方法
错误中提示“数据库的版本为661,无法打开.此服务器支持655版及更低版本.不支持降级路径”. 这种情况是由于高版本的数据库文件在低版本的数据库上造成的,即我们要附加的数据库文件的版本高于当前SQL ...
- python课堂整理12---递归
一.递归特性 1.必须有一个明确的结束条件 2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少 3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据 ...