当前位置:首页 > 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
分享给朋友:

相关文章

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现上传图片

js实现上传图片

使用HTML5的File API实现图片上传 HTML5的File API允许通过JavaScript访问用户选择的文件。需要创建一个文件输入元素,并监听其change事件。 <input t…

js实现左右滑动

js实现左右滑动

实现左右滑动的 JavaScript 方法 监听触摸事件 通过 touchstart、touchmove 和 touchend 事件来检测用户的手势操作。记录触摸的起始位置和移动距离,判断滑动方向。…

js 实现文件上传

js 实现文件上传

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。以下是一个基础示例: <input ty…