前端实现pdf文件预览的操作步骤方法_javascript技巧

PDF.js 是一个用 JavaScript 实现的 PDF 阅读器,可以嵌入到网页中进行 PDF 文件的预览,并且可以自定义其功能。

import React, { useEffect, useRef } from 'react';import pdfjsLib from 'pdfjs-dist';import 'pdfjs-dist/web/pdf_viewer';const PdfPreview = ({ url }) => { const pdfContainer = useRef(null); useEffect(() => { // 配置 PDF.js pdfjsLib.GlobalWorkerOptions.workerSrc = `//cdnjs.Cloudflare.com/ajax/libs/pdf.js/${pdfjsLib.version}/pdf.worker.js`; // 加载 PDF const loadingTask = pdfjsLib.getDocument(url); loadingTask.promise.then((pdf) => { // 获取第一页 pdf.getPage(1).then((page) => { const viewport = page.getViewport({ scale: 1.5 }); const canvas = document.createElement('canvas'); const context = canvas.getContext('2d'); canvas.height = viewport.height; canvas.width = viewport.width; const renderContext = { canvasContext: context, viewport: viewport }; page.render(renderContext).promise.then(() => { pdfContainer.current.appendChild(canvas); }); }); }); }, [url]); return ;};export default PdfPreview;

如果不想使用 PDF.js,也可以通过 iframe 嵌入 PDF 文件,并通过特定参数来禁用下载功能。

当检测到文件为 PDF 时,使用 iframe 进行嵌入,并添加 #toolbar=0 参数来禁用工具栏(包括下载按钮)。

if (record.name.endsWith('.pdf')) { const pdffileUrl= new URL(API_BASE_URL_PRO).origin; // window.open(pdfFileUrl, '_blank'); 或者使用打开新窗口方式 const fileUrl = `${baseUrl.replace(/:\d+$/, ':3100')}/api/common/file/download?fileId=${record.fileId}&bucketName=dataset#toolbar=0`; const previewModal = Modal.info({ title: ( <> 文件预览 {record.name} ), content: ( ), footer: null, width: '75%', style: { top: 35 }, closable: true, onCancel: () => previewModal.destroy(), }); return;}

选择适合你项目需求的方法进行实现即可。如果你希望有更高的定制性和更好的用户体验,推荐使用 PDF.js。如果你希望实现简单快捷,可以选择 iframe 方法。

到此这篇关于前端实现pdf文件预览操作步骤方法的文章就介绍到这了,更多相关前端pdf文件预览内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


本文地址: https://www.earthnavs.com/jishuwz/c5ec1aed71e89e41e333.html
全局中部横幅
开发者导航

程序员一站式导航平台,汇集AI工具、前端、后端、Python、Java等1000+优质开发工具

南方周末

该站点未添加描述description...

知道日报作者中心

:。知道日报是百度知道重磅推出的品牌内容栏目,泛生活领域的专业知识问答平台。基于百度知道强大的问答平台基础和良好的用户口碑,知道日报甄选广大网友深感兴趣的泛生活领域问题,涉及生活、科技、互联网、健康、环境、天文等几十个分类,邀请专业机构、专家学者,向读者提供专业优质的回答。

百度指数

该站点未添加描述description...

美国香港海外云服务器

纵横数据成立于2005年,是业内知名的企业级高可用云服务器提供商!主营全球服务器租用与托管、国内云主机、海外云服务器、动态拨号VPS、显卡服务器、大带宽服务器等一站式全球IT网络解决方案提供商。纵横数据一直致力于全球互联网数据基础业务和网络营销解决方案的实施,是一家极富创新性的科技公司。

行业AI先锋

华为云提供稳定可靠、安全可信、可持续发展的云服务,致力于让云无处不在,让智能无所不及,共建智能世界云底座。助力企业降本增效,全球300万客户的共同选择。7x24小时专业服务支持,5天内无理由退订,免费快速备案。

大厂图床

该站点未添加描述description...

网站收录

全人工编辑的开放式网站分类目录,收录国内外、各行业优秀网站,旨在为用户提供网站分类目录检索、优秀网站参考、网站推广服务。

B2B目录网

B2B站网址大全是全人工编辑的开放式网站分类目录资源平台,收录国内外、各行业优秀B2B网站,旨在为用户提供网站分类目录检索、优秀网站参考以及B2B推广服务。

Google

该站点未添加描述description...