首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >组件分享之前端组件——基于pdf.js在线预览PDF文件

组件分享之前端组件——基于pdf.js在线预览PDF文件

作者头像
cn華少
发布于 2022-03-06 01:13:25
发布于 2022-03-06 01:13:25
5.6K00
代码可运行
举报
文章被收录于专栏:IT综合技术分享IT综合技术分享
运行总次数:0
代码可运行

组件分享之前端组件——基于pdf.js在线预览PDF文件

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

内容

本次分享的组件是用于在浏览器中在线查看PDF使用的。 下面是其开源库中的描述内容:

PDF.js是使用 HTML5 构建的可移植文档格式 (PDF) 查看器。 PDF.js 由社区驱动并受 Mozilla 支持。我们的目标是创建一个通用的、基于 Web 标准的平台来解析和呈现 PDF。

交互式示例 带有文档加载错误 处理的 Hello World 该示例演示了如何使用 Promise 来处理加载过程中的错误。它还演示了如何等待页面加载和 呈现。

1、创建一个html页面,并在其中增加如下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="//mozilla.github.io/pdf.js/build/pdf.js"></script>

<h1>PDF.js 'Hello, world!' example</h1>

<canvas id="the-canvas"></canvas>

2、增加如下CSS样式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#the-canvas {
  border: 1px solid black;
  direction: ltr;
}

3、在js中增加如下代码进行加载需要在线展示的pdf文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 如果提供了来自远程服务器的绝对URL,则在该服务器上配置CORS头。
var url = 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/examples/learning/helloworld.pdf';

// 通过<script>标签加载,创建访问PDF.js导出的快捷方式。
var pdfjsLib = window['pdfjs-dist/build/pdf'];

// 指定workerSrc属性。
pdfjsLib.GlobalWorkerOptions.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';

// 异步下载PDF
var loadingTask = pdfjsLib.getDocument(url);
loadingTask.promise.then(function(pdf) {
  console.log('PDF loaded');
  
  // 获取第一页
  var pageNumber = 1;
  pdf.getPage(pageNumber).then(function(page) {
    console.log('Page loaded');
    
    var scale = 1.5;
    var viewport = page.getViewport({scale: scale});

    // 准备画布使用PDF页面尺寸
    var canvas = document.getElementById('the-canvas');
    var context = canvas.getContext('2d');
    canvas.height = viewport.height;
    canvas.width = viewport.width;

    // 渲染PDF页到画布上下文
    var renderContext = {
      canvasContext: context,
      viewport: viewport
    };
    var renderTask = page.render(renderContext);
    renderTask.promise.then(function () {
      console.log('Page rendered');
    });
  });
}, function (reason) {
  // PDF loading error
  console.error(reason);
});

4、这样我们一个简单的使用demo就完成了,上述案例来源于官方案例,有需要的小伙伴可以直接参考https://mozilla.github.io/pdf.js/examples/官方案例详细说明。

本文声明:

本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022.01.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Webview加载pdf遇到的一些坑及解决方法
有一天产品小王拿着电脑兴致勃勃的来到我的工位旁:“诶,小付,这里有个在线pdf预览的功能,你看下能不能做。”
coder_koala
2021/11/10
8.9K0
Webview加载pdf遇到的一些坑及解决方法
PDF.js实现个性化PDF渲染(文本复制)
这种实现方式优缺点都很明显: 优点:自带“打印”,“搜索”,“翻页”等功能,强大且实现方便。 缺点:不同浏览器的pdf工具样式不一,且无法满足个性化需求,比如:禁止打印,下载等。
庞小明
2019/05/25
10.8K0
如何实现高性能的在线 PDF 预览
最近接到产品需求,用户需要在我们的站点上在线查看 PDF 文件,并且查看时,用户可以对 PDF 文件的进行旋转、缩放、跳转到指定页码等操作。
政采云前端团队
2020/06/04
6.9K0
如何实现高性能的在线 PDF 预览
前端实现word、excel、pdf、ppt、mp4、图片、文本等文件的预览
找了网上的实现方案,效果看起来不错,放在下面的表格里,里面有一些是可以直接通过npm在vue中引入使用。
PHP开发工程师
2022/03/07
2.5K0
前端实现word、excel、pdf、ppt、mp4、图片、文本等文件的预览
超详细的vue3使用pdfjs教程
在项目开发中碰到一个需求是在页面中展示pdf预览功能,本人的项目使用的是vue3,实现pdf预览使用的是pdf预览神器 pdfjs
CherishTheYouth
2021/08/11
19.7K1
React 实现 PDF 文件在线预览 - 手把手教你写 React PDF 预览功能
本文完整版:《React 实现 PDF 文件在线预览 - 手把手教你写 React PDF 预览功能》
蒋川@卡拉云
2022/05/30
5.5K0
React 实现 PDF 文件在线预览 - 手把手教你写 React PDF 预览功能
使用PDF.JS在线查看PDF
第一步:下载源码https://github.com/mozilla/pdf.js
易墨
2018/09/14
33.3K1
使用PDF.JS在线查看PDF
Vue 通过调用文件流实现 PDF 文件在线预览的方法
如果后端返回的是PDF文件在服务器上的路径,直接访问该路径即可在浏览器中预览PDF文件。例如,后端返回路径http://example.com/path/to/file.pdf,在前端可以通过如下方式实现预览:
小焱
2025/05/19
2.4K0
Vue 通过调用文件流实现 PDF 文件在线预览的方法
pdf.js预览pdf文件流(base64)
新接手一个老项目,需要改造pdf文件的预览效果,接口直接返回的pdf文件的文件流base64字符串,前端只能拿到base64来进行预览。
五月
2022/11/14
16.9K0
pdf.js预览pdf文件流(base64)
PDF.js Electron Viewer
PDF.js 是基于 HTML5 解析与渲染 PDF 的 JavaScript 库,由 Mozilla 主导开源。
GoCoding
2021/12/17
12.4K0
PDF.js Electron Viewer
使用 pdf.js 在网页中加载 pdf 文件
在网页中加载并显示PDF文件是最常见的业务需求。例如以下应用场景:(1)在电商网站上购物之后,下载电子发票之前先预览发票。(2)电子商务管理系统中查看发布的公文,公文文件一般是PDF格式的文件。
张传宁IT讲堂
2019/10/30
43.9K5
使用 pdf.js 在网页中加载 pdf 文件
前端【vue】实现文档在线预览功能,在线预览pdf、word、xls、ppt等office文件
XDOC可以实现预览以DataURI表示的DOC文档,此外XDOC还可以实现文本、带参数文本、html文本、json文本、公文等在线预览,具体实现方法请看官方文档下面这种方式可以实现快速预览word但是对文件使用的编辑器可能会有一些限制
江一铭
2022/06/17
26K2
前端【vue】实现文档在线预览功能,在线预览pdf、word、xls、ppt等office文件
react-pdf预览在线PDF的使用
建议安装8.0.2版本的react-pdf,如果安装更高版本的可能出现一些浏览器的兼容性问题;
用户1174387
2024/09/15
5840
react-pdf预览在线PDF的使用
解决Android的WebView无法打开PDF的方案
最近自家产品开发使用中收到反馈,安卓内嵌网页无法打开PDF,而IOS可以打开。其实安卓无法打开分以下几种情况:
一冷
2023/07/12
4.7K0
解决Android的WebView无法打开PDF的方案
PDF.js 分片下载的介绍2:分片下载demo
服务器环境: php7.2 nginx 1.14 ubuntu 18.04 测试浏览器:谷歌浏览器 70.0.3538.110(
庞小明
2019/05/25
13K0
vue整合pdfjs,实现pdf文件预览
pdf格式的文件浏览器是可以直接打开的。所以只需要返回pdf文件的文件流,就可以直接预览文件,通过这种方式打开,整个页面全是pdf的文件内容。需求是要求预览时,页面上要加上特定的标题格式,所以直接把文件流在浏览器打开的方式行不通。通过收集相关资料,找到pdfjs插件以支持文件的预览。
用户5166330
2019/04/16
12K2
vue整合pdfjs,实现pdf文件预览
office文件 vue 预览_vue实现pdf文档在线预览功能
针对android系统不支持pdf文档在线预览,可通过引入pdf.js插件实现,其具体实现步骤如下
全栈程序员站长
2022/08/30
3.7K0
PDF.js专题
前言     英文是github上的原文,找不到中文资料,我根据自己理解翻译的,有些词意思拿不准就直接把单词留在原地了,看这个文档应该可以凑合着用了。 PDF.js是什么     PDF.js is a Portable Document Format(PDF) viewer that is built with HTML5.PDF.js is community-driven and supportedby Mozilla Labs. Our goal is to create a general-pur
MonroeCode
2018/02/09
21.6K0
PDF.js专题
[mobile开发碎碎念]手机页面上显示PDF文件
demo:http://mozilla.github.io/pdf.js/web/viewer.html 项目地址:https://github.com/mozilla/pdf.js <script type="text/javascript"> // // NOTE: // Modifying the URL below to another server will likely *NOT* work. Because of browser // security rest
用户1172164
2018/01/16
1.5K0
pdf.js分片加载、分段加载golang beego
viewer.html页面不需要修改。如果需要,则修改viewer.js和pdf.js等引用文件位置
hotqin888
2021/12/06
21.3K2
pdf.js分片加载、分段加载golang beego
推荐阅读
相关推荐
Webview加载pdf遇到的一些坑及解决方法
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验