Vue2集成pdfjs要点

开发环境:
官网下载,解压,在项目public文件夹下新增文件夹pdfjs,解压后的文件放进来,主要是build和web。

Iframe没什么好说的,src 指向地址“/pdfjs/web/viewer.html?file=你的pdf地址,pdf地址最好用encodeURIComponent包一下。

生产环境:
Iframe 的src 指向地址要变为绝对路径,…/…/pdfjs/web/……

因为我打包的dist 内pdfjs文件夹和static 平行的,所以地址这样写

Nginx还需要配置
location /pdfjs {
跟一般项目配置就可以
注意index 加一个viewer.html
try_files $uri $uri/ /部署的文件夹名称/pdfjs/…/viewer.html
}

注意,有的文件接口本身get请求带?号传递参数,viewer .html?file=这也有个?问号,可能会有影响,你可以修改一下接口rest风格就可以了

viewer.html内可以找到print 和download标签使用css隐藏实现禁止下载打印,当然保险的方式直接注销代码,但是会导致添加监听事件报错,需要在viewer.mjs内找到11975行添加判断eventName 不等于print download就可以啦,还有禁止右键菜单代码也可加进来效果杠杠的

还有跨域,百度一下注销那三行代码就可以了

这样就可以正常预览啦

Vue.js 是一个流行的 JavaScript 前端框架,而 PDF.js 是一个开源的 JavaScript 库,用于在网页上显示 PDF 文件。如果你想在 Vue.js 中使用 PDF.js,你可以按照以下步骤进行操作: 1. 首先,安装 PDF.js 库。你可以通过 npm 或者 yarn 来安装。打开终端,进入你的 Vue.js 项目目录,并执行以下命令: ```bash npm install pdfjs-dist ``` 或者 ```bash yarn add pdfjs-dist ``` 2. 在你的 Vue 组件中,导入 `pdfjs-dist` 库,并创建一个 PDF 查看器组件。你可以使用 `<canvas>` 标签来展示 PDF 文档。以下是一个简单的示例: ```vue <template> <div> <canvas ref="pdfViewer"></canvas> </div> </template> <script> import pdfjsLib from 'pdfjs-dist' export default { mounted() { this.renderPDF() }, methods: { async renderPDF() { const pdfPath = 'path_to_your_pdf.pdf' const canvas = this.$refs.pdfViewer const loadingTask = pdfjsLib.getDocument(pdfPath) const pdf = await loadingTask.promise const page = await pdf.getPage(1) const scale = 1.5 const viewport = page.getViewport({ scale }) const context = canvas.getContext('2d') canvas.height = viewport.height canvas.width = viewport.width const renderContext = { canvasContext: context, viewport: viewport } await page.render(renderContext) } } } </script> ``` 在上面的示例中,我们首先导入了 `pdfjs-dist` 库,并在 `mounted` 阶段调用 `renderPDF` 方法。在 `renderPDF` 方法中,我们加载 PDF 文档并获取第一页,然后根据页面大小创建一个相应大小的 `<canvas>` 元素,并将 PDF 页面渲染到该 canvas 上。 请确保将 `path_to_your_pdf.pdf` 替换为你要显示的 PDF 文件的实际路径。 这只是一个简单的示例,你可以根据你的需求进行更复杂的操作和样式调整。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值