首页 > 其他分享 >浏览器中在线预览pdf文件,pdf.mjs插件实现web预览pdf

浏览器中在线预览pdf文件,pdf.mjs插件实现web预览pdf

时间:2024-10-30 16:36:05浏览次数:5  
标签:文件 插件 浏览器 预览 PDF pdf

背景:本来只是淘宝上卖卖袜子,想着扩展一下业务,准备做同名“来家居”海外袜子馆外贸项目,碰到pdf在线预览的需求,就找了pdf.js插件进行实践后把此方法记录下来,可以通过多种方法来实现,每种方法都有其优缺点和适用场景。

简单一点的可以使用<iframe>或<embed>标签,这两种方法都是通过浏览器内置的PDF阅读器来预览PDF文件。使用<iframe>或<embed>标签可以很容易地嵌入PDF文件,不需要额外的插件或库,且具有较好的跨平台兼容性。然而,这种方法在定制性和用户体验上可能不如使用专门的PDF阅读器‌,特别是ie浏览器下会变为下载pdf。

现代浏览器如Chrome和Firefox内置了PDF查看器,可以直接在浏览器中打开和预览PDF文件。这种方法简单快捷,只需将PDF文件的URL设置为<a>标签的href属性,或者使用window.open方法在新标签页中打开PDF文件。然而,这种方法受限于浏览器内置的PDF阅读器,用户体验还是不如专门的PDF阅读器‌

本次着重介绍pdf.js插件,这是一个由Mozilla开发的开源库,使用HTML5 Canvas来渲染PDF文件。它支持丰富的API,可以实现PDF的加载、渲染、缩放、打印等功能。使用pdf.js需要在项目中引入库文件,并通过API加载和渲染PDF文件。这种方法提供了较高的自定义和交互功能,但需要一定的学习和配置成本‌。本文只涉及简单使用,如有流展示需求另行查找其它方案。

一、PDFjs版本下载

本文基于版本

https://github.com/mozilla/pdf.js/releases/tag/v4.7.76

下载后把文件夹pdfjs-4.7.76-dist拷贝到项目中

二、PDFjs使用

插件使用很简单,结合给的案例,直接viewer.html传路径参数即可。

1、下载 https://github.com/mozilla/pdf.js/releases

2、解压后得到 build 和 web 两个文件夹

3、将其放入网站目录下

4、使用 web 中的 viewer.html 即可在线预览 pdf 文件

方式:viewer.html?file=xxx.pdf

如:

<iframe src='/pdfjs-4.7.76-dist/web/viewer.html?file=pdf路径' width="1097" height="500"></iframe>

三、关于pdfjs工具栏汉化的问题,菜单栏如果显示中文

不同版本菜单栏调整可能略有不同。这里是4.7.76版本找到文件viewer.html,查找web/locale/locale.json这个文件,把里面不需要的语言删掉,调整排序即可,根据需要保留。en-US尽量保留,笔者只要中文保留如下。Locale文件夹中根据实际需要保留语言包。

{"zh-cn":"zh-CN/viewer.ftl","zh-tw":"zh-TW/viewer.ftl"}

四、踩坑记录

无法加载或未能加载中文语言请检查是否有相应的 mime 配置(mjs、ftl)

PDF.js更新设置MIME 类型:
  .mjs application/javascript
  .ftl application/x-freemarker

Asp.net iis web.config配置如下:

<system.webServer>
<staticContent>
  <remove fileExtension=".mjs"/>
  <remove fileExtension=".ftl"/>
  <mimeMap fileExtension=".mjs" mimeType="text/javascript"/>
  <mimeMap fileExtension=".ftl" mimeType="application/x-freemarker" />
 </staticContent>
</system.webServer>

  

标签:文件,插件,浏览器,预览,PDF,pdf
From: https://www.cnblogs.com/futureba/p/18516058

相关文章

  • 推荐一款免费开源的PDF文件处理神器!上手简单,一步到位(带私活源码)
     背景介绍PDFGuru致力于打造一款PDF文件处理神器,具有PDF合并、拆分、旋转、水印、加密、等20多项常用功能,本项目完全开源,个人用户使用免费,上手简单,超级好用。功能特点本地化:本地安全,离线运行,不必担心隐私泄露功能丰富:支持包括PDF批量合并、拆分、添加水印、加密/解密、......
  • 国标GB28181视频平台EasyGBS国标GB28181软件实现无需插件的视频监控对讲和网页直播
    在当今社会,视频监控已经成为公共安全、企业管理、智能城市建设等领域不可或缺的一部分。然而,由于不同厂家和平台之间的兼容性问题,视频监控系统的联网和整合面临巨大挑战。为了解决这个问题,国家制定了《公共安全视频监控联网系统信息传输、交换、控制技术要求》(GB/T28181—2016......
  • 人工智能大模型赋能医疗健康产业白皮书(2023年)|附88页PDF文件下载
    本文提供完整版报告下载,请查看文后提示。以下为报告节选:…文│人工智能医疗器械创新合作平台、中国信通院本报告共计:88页。完整版请添加下方领取!如何学习AI大模型?“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。这句话,放在计算机、互联网、移动互联网的开局......
  • IDEA如何在线安装一个插件,超简单
    前言我们在使用IDEA开发Java应用时,经常是需要安装插件的,这些各种各样的插件帮助我们快速的开发应用,今天,就来介绍下如何在IDEA中安装插件。那么,我们该如何安装插件呢?如何安装插件首先,我们打开设置面板。然后,我们点击【Plugins】,我们再在右侧点击【Marketplace】,在输入框里面......
  • 【专题】2024中国B2B市场营销现况白皮书报告汇总PDF洞察(附原数据表)
    原文链接:https://tecdat.cn/?p=38043在2024年的市场环境中,营销领域呈现出复杂多样的态势。首先,从B2B企业来看,46%的营销人员面临预算缩减,然而指标未降,预算分布也呈现多元化,反映出不同的市场定位与策略。同时,预算较2023年有多种变化,体现了企业各异的市场预期和经营策略。文......
  • 【专题】2024中国数智社媒电商市场洞察报告汇总PDF洞察(附原数据表)
    原文链接:https://tecdat.cn/?p=38018当今时代,电商已深度融入人们的生活。2024年,电商市场迎来新的变化与挑战。社媒电商销售规模增长,1月热度突出,服饰、食品饮料、家居用品份额居前三,医疗健康与奢侈品涨幅显著。同时,综合电商增长乏力,直播电商增速放缓,全网销售额出现负增长。文末2......
  • vim的基本使用和插件基础
    一、vim简介vim是一个文本编辑器,在Unix以及类Unix系统中广泛使用,与Emacs并列为两大类Unix操作系统编辑器。vim前身是vi编辑器,vim是vi的扩展。早期vim开发者只是为了完全复制vi以供自己使用,但后来vim被移植到Unix上,之后vim被加入了更多的功能。最后在版本的不断迭代以及更多开......
  • 怎么把pdf文档保存成图片格式
    有时候我们会碰到只支持图片上传的场景,如何编程快速将pdf转成图片呢?可以使用Python的pdf2image库仅10行代码就能将PDF文档保存为图片格式。如果PDF文档包含多页,则每一页可以保存为单独的图片。以下是实现该功能的步骤:步骤:安装所需的库:pdf2image:用于将PDF......
  • MarkDown All in One插件预览与常用快捷键
    MarkDownAllinOne插件预览与常用快捷键预览实时预览:Ctrl+Shift+P调出主命令框,输入Markdown,应该会匹配到几项Markdown相关命令,选择Markdown:OpenPreviewtotheSide,就能调出实时预览框了。新窗口预览:Ctrl+Shift+V打开新窗口,加载md文件预览。常用快捷键......
  • Vue3 - 完美解决html2canvas截图不全问题,截图只截取当前可视区域导出图片不全,截屏导出
    前言该解决方案任意前端技术栈通用,不仅限Vue。在vue3(手机H5移动端/微信公众号H5页面)项目开发中,使用html2canvas截屏时发现有一部分未截取到少了一块截图不完整,导出保存图片时发现截图只有一半显示不全,另外还有一个问题就是截图时截取当前可视区域的问题(出现滚动条只保......