添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

最近由于工作需要,需要一个功能在线浏览pdf。经过初步筛选,选定了pdf.js.可以满足我们所有的功能需求。

一:先简要概括一下优缺点
优点总结:

  1. 免费,开源的。这点很重要
  2. 纯js实现,客户不需要安装额外的插件
  3. 功能强大,缩放,打印,查找功能应有尽有
  4. 兼容主流浏览器,火狐,谷歌,ie9+都支持
    缺点总结
    1:js 文件偏大,加载一起3m 多,即便压缩后,两个核心js 文件也在1m左右。会影响加载速度
    2:引文使用H5 技术,ie8 以及ie8 以下的浏览器不支持。

二:下载和安装
1:进入官网下载地址:
http://mozilla.github.io/pdf.js/getting_started/#download
建议下载最新版,目前最新版本为1.9,建议下载正式版
pdfjs,下载

ps:1.8版本以及以上可以兼容,目前的qq浏览器,低版本qq浏览器可能会不能显示。
官网是国外的,打开可能比较满,也可以从下面的国内镜像站下载
http://download.csdn.net/download/amu0521/10107388?web=web

2:下载后,解压文件,进入build 目录


拷贝pdf.js,pdf.worker.js
复制pdf.js 和pdf.worker.js,这两个文件到我们的网站目录

3:编辑文件,显示签名。本步骤非必须。
打开pdf.worker.js ,搜索 data.fieldType === ‘Sig’ ,定位到大约28728行,注释掉下面的一行代码,如图
显示签名
保存即可。
4:编写测试网页,显示pdf

< title > pdf.js展示1,上一页,下一页 </ title > </ head > < h1 > PDF.js Previous/Next example </ h1 > < button id = "prev" > Previous </ button > < button id = "next" > Next </ button > &nbsp; &nbsp; < span > Page: < span id = "page_num" > </ span > / < span id = "page_count" > </ span > </ span > </ div > < canvas id = "the-canvas" > </ canvas > < script src = "js/pdf.js" > </ script > < script src = "js/pdf.worker.js" > </ script > < script > var url = '/pdf/doc/demo1.pdf' ; var pdfDoc = null , pageNum = 1 , pageRendering = false , pageNumPending = null , scale = 0.8 , canvas = document.getElementById( 'the-canvas' ), ctx = canvas.getContext( '2d' ); * Get page info from document, resize canvas accordingly, and render page. * @param num Page number. function renderPage (num) { pageRendering = true ; // Using promise to fetch the page pdfDoc.getPage(num).then( function (page) { var viewport = page.getViewport(scale); canvas.height = viewport.height; canvas.width = viewport.width; // Render PDF page into canvas context var renderContext = { canvasContext: ctx, viewport: viewport var renderTask = page.render(renderContext); // Wait for rendering to finish renderTask.promise.then( function () { pageRendering = false ; if (pageNumPending !== null ) { // New page rendering is pending renderPage(pageNumPending); pageNumPending = null ; // Update page counters document.getElementById( 'page_num' ).textContent = num; * If another page rendering in progress, waits until the rendering is * finised. Otherwise, executes rendering immediately. function queueRenderPage (num) { if (pageRendering) { pageNumPending = num; } else { renderPage(num); * Displays previous page. function onPrevPage () { if (pageNum <= 1 ) { return ; pageNum--; queueRenderPage(pageNum); document.getElementById( 'prev' ).addEventListener( 'click' , onPrevPage); * Displays next page. function onNextPage () { if (pageNum >= pdfDoc.numPages) { return ; pageNum++; queueRenderPage(pageNum); document.getElementById( 'next' ).addEventListener( 'click' , onNextPage); * Asynchronously downloads PDF. PDFJS.getDocument(url).then( function (pdfDoc_) { pdfDoc = pdfDoc_; document.getElementById( 'page_count' ).textContent = pdfDoc.numPages; // Initial/first page rendering renderPage(pageNum); </ script > </ html >

运行效果如下图
pdf浏览

代码来自官方实例,进行了整理
http://mozilla.github.io/pdf.js/examples/

提示:
1:请运行在虚拟服务器上,比如apache或iis等,否则可能会显示不出来效果。
2:pdf 文件为任何pdf文件即可,网站演示的pdf文件从网上下载的,如果侵权,请留言。
附上demo 目录结构
pdf浏览展示

最近由于工作需要,需要一个功能在线浏览pdf。经过初步筛选,选定了pdf.js.可以满足我们所有的功能需求。一:先简要概括一下优缺点 优点总结:免费,开源的。这点很重要纯js实现,客户不需要安装额外的插件功能强大,缩放,打印,查找功能应有尽有兼容主流浏览器,火狐,谷歌,ie9+都支持 缺点总结 1:js 文件偏大,加载一起3m 多,即便压缩后,两个核心js 文件也在1m左右。会影响
在Web项目中,经常需要在浏览器端展示 PDF 文档,本文通过一个简单的小例子,简述 pdf.js 【一个通用的、基于web标准的、用于解析和呈现 pdf 的平台】的简单使用,仅供学习分享使用,如有不足之处,还请指正。 在Web项目中,经常需要在浏览器端展示 PDF 文档,本文通过一个简单的小例子,简述 pdf.js 的简单使用,仅供学习分享使用,如有不足之处,还请指正。 pdf.js 下载 pdf.js 是一个通用的、基于web标准的、用于解析和呈现 pdf 的平台。用户可以通过 pdf.js 的官方网站,进行下载,如下图所示:
小程序中预览下载 PDF 文件 由于小程序是在手机端使用,微信小程序的api有时候不满足我们的需求. 所以就自己自定义实现一个下载预览 PDF 的功能 1.小程序端使用web-view组件,在其中打开一个网页,在网页中实现我们需要的功能 <web-view src="{{url}}"></web-view> 其中url就是打开我们网页的地址 2.在网页中添加 pdf.js js ...
最近有这样一个需求,需要在线预览 pdf 文件,于是就去找这方面的插件。最后筛选了一下,选择了 pdf.js 这个插件。 我们先看一下 pdf.js 定义: pdf.js 可以实现在html下直接浏览 pdf 文档,是一款开源的 pdf 文档读取解析插件 pdf.js 主要包含两个库文件,一个 pdf.js 和一个 pdf . worker . js ,,一个负责API解析,一个负责核心解析 pdf.js 本质上是用canvas渲染的,p...
pdf js .Global Worker Options. worker Src = `//cdn js .cloudflare.com/ajax/libs/ pdf.js /${ pdf js .version}/ pdf . worker . js `; pdf js .Global Worker Options. worker Src = `...
官网提供的示例 import { pdf js } from 'react- pdf '; pdf js .Global Worker Options. worker Src = `//unpkg.com/ pdf js -dist@${ pdf js .version}/build/ pdf . worker .min. js `; 使用官方提供的的链接引入 worker 可能会存在加载错误的问题,可能由于服务器的问题导致,所以使用本地引入可以很好的避免这类问题; 本地引入示例代码 import { Document, Page } from 'r
mozilla pdf js 介绍moziila pdf js 是一款优秀的 pdf 在线预览、导出、打印插件,但在使用中遇到了跨域问题。mozilla pdf js 跨域设置在 pdf.js /web/app. js 中,1420行,找到let viewerOrigin = new URL(window.location.href).origin || 'null';//添加这一行 //修改,将当前工程的orig
### 回答1: 《RabbitMQ实战指南. pdf 》是一本关于RabbitMQ消息队列系统的实践指南。RabbitMQ是一个开源的消息中间件,用于在应用程序之间传递消息。这本指南涵盖了RabbitMQ的基本概念、架构以及如何在实际项目中使用它。 指南开始介绍了RabbitMQ的基本概念,如交换器、队列、生产者和消费者。它解释了这些概念之间的关系,以及如何使用它们来实现灵活的消息传递模式。然后,指南深入探讨了RabbitMQ的高级概念,如持久化、事务和发布/订阅模式。 除了概念介绍,指南还提供了具体的实战示例。它讲解了如何使用RabbitMQ在分布式系统中实现任务队列、发布/订阅和RPC等常见消息模式。每个示例都提供了详细的代码和步骤,让读者能够更好地理解如何实现这些模式。 此外,《RabbitMQ实战指南. pdf 》还介绍了RabbitMQ的高可用性和可扩展性。它讲解了如何配置集群和镜像队列,以实现高可用性。同时,它还分享了一些实践经验和性能调优技巧,以帮助读者更好地运行和管理RabbitMQ。 总之,《RabbitMQ实战指南. pdf 》是一本关于RabbitMQ的实用指南,适合那些想要了解和应用RabbitMQ的开发者和架构师。通过学习这本指南,读者将能够掌握RabbitMQ的基本概念和高级特性,并在实际项目中充分发挥其优势。 ### 回答2: 《RabbitMQ实战指南》是一本介绍RabbitMQ消息队列中间件的实际应用的指南。RabbitMQ是一个基于AMQP(高级消息队列协议)的开源消息代理,被广泛应用于构建可靠、高效的分布式系统。 该书从RabbitMQ的基本概念开始介绍,包括队列、交换机、绑定等概念的解释和使用方法。然后,通过实例演示了如何使用RabbitMQ在不同的应用场景下解决问题。例如,如何使用RabbitMQ实现任务分发、日志收集、消息广播等功能。 书中还详细说明了如何配置和管理RabbitMQ服务器,包括如何设置虚拟主机、用户和权限管理等。同时,也介绍了如何监控和调试RabbitMQ实例,以及如何通过集群来提高可靠性和性能。 此外,本书还涵盖了与RabbitMQ相关的高级主题,如消息确认、消息持久化、事务、RPC等。这些主题对于构建可靠的分布式系统非常重要,而本书提供了实际的指导和示例供读者参考。 总之,《RabbitMQ实战指南》是一本全面介绍RabbitMQ的实际应用的实战指南。通过本书的学习,读者可以深入了解RabbitMQ的原理和应用场景,掌握使用RabbitMQ构建可靠、高效的分布式系统的技巧。这对于从事分布式系统开发和架构设计的工程师来说,是一本非常有价值的参考书。 ### 回答3: 《rabbitmq实战指南. pdf 》是一本关于RabbitMQ的实战指南的电子书。RabbitMQ是一种功能强大的开源消息中间件,用于在分布式系统之间进行消息传递。本书通过实践案例和详细的代码示例,介绍了RabbitMQ的基本概念、工作原理以及如何在实际项目中应用。 该书首先讲解了RabbitMQ的基本概念,包括消息队列、交换机、绑定和路由等,帮助读者了解RabbitMQ的核心组件以及它们之间的关系。然后,书中介绍了如何使用RabbitMQ进行消息的生产和消费,包括如何创建消息生产者和消费者、如何发送和接收消息等。同时,还详细介绍了如何使用各种常见的编程语言(如Java、Python和Node. js )进行RabbitMQ的集成。 此外,《rabbitmq实战指南. pdf 》还介绍了 RabbitMQ的高级特性和应用场景。例如,如何使用RabbitMQ实现消息的优先级排序、如何实现发布/订阅模式、如何进行消息持久化等。书中通过实例讲解了如何应对高并发和大数据量的情况,以及如何处理消息的确认和错误处理。同时,还介绍了如何使用RabbitMQ来实现分布式系统之间的解耦和异步通信。 总之,《rabbitmq实战指南. pdf 》是一本内容丰富、实用性强的RabbitMQ 入门 指南,通过详细的介绍和实践案例,帮助读者快速上手并掌握RabbitMQ的基本原理和应用技巧。无论是初学者还是有一定经验的开发人员,都可以从中获得启发和实用的知识。