当前位置:首页 > JavaScript

js实现pdf在线预览

2026-04-03 18:49:35JavaScript

使用PDF.js实现PDF在线预览

PDF.js是Mozilla开发的一个开源库,可以直接在浏览器中渲染PDF文件,无需任何插件。

安装PDF.js库

<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.11.338/pdf.min.js"></script>

基本实现代码

// 设置PDF.js worker路径
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.11.338/pdf.worker.min.js';

// 加载PDF文档
const loadingTask = pdfjsLib.getDocument('yourfile.pdf');
loadingTask.promise.then(function(pdf) {
  // 获取第一页
  pdf.getPage(1).then(function(page) {
    const scale = 1.5;
    const viewport = page.getViewport({scale: scale});

    // 准备canvas元素
    const canvas = document.getElementById('pdf-canvas');
    const context = canvas.getContext('2d');
    canvas.height = viewport.height;
    canvas.width = viewport.width;

    // 渲染PDF页面到canvas
    const renderContext = {
      canvasContext: context,
      viewport: viewport
    };
    page.render(renderContext);
  });
});

使用iframe嵌入PDF预览

HTML5提供了原生支持PDF预览的方式,但浏览器兼容性有限。

<iframe 
  src="yourfile.pdf" 
  width="100%" 
  height="600px"
  style="border: none;">
</iframe>

使用第三方服务预览PDF

Google文档查看器提供了一种简单的PDF预览方案。

<iframe 
  src="https://docs.google.com/viewer?url=http://yourdomain.com/yourfile.pdf&embedded=true"
  width="100%"
  height="600px"
  frameborder="0">
</iframe>

使用浏览器原生PDF查看功能

现代浏览器大多支持直接打开PDF文件,可以通过简单的链接实现。

<a href="yourfile.pdf" target="_blank">查看PDF文件</a>

注意事项

PDF.js提供了最灵活的解决方案,但需要处理跨域问题。当PDF文件位于不同域名时,服务器需要配置CORS头。

iframe方式简单但依赖浏览器支持,部分移动浏览器可能无法正常显示。

js实现pdf在线预览

第三方服务如Google文档查看器需要网络连接,且文件会经过第三方服务器。

标签: 在线js
分享给朋友:

相关文章

vue实现word在线

vue实现word在线

Vue 实现 Word 在线编辑与预览 方案一:使用 docx.js 与前端解析 安装依赖库 docx 和 file-saver,用于生成和下载 Word 文件: npm install docx…

vue实现在线学习系统

vue实现在线学习系统

实现功能模块设计 在线学习系统通常需要包含课程展示、用户管理、学习进度跟踪、互动讨论等功能模块。使用Vue.js可以高效构建这些模块。 课程展示模块需要设计课程卡片、分类筛选、搜索功能。用户管理模块…

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…