vue中使用window.open()方法实现pdf文件的预览操作


一、需求

在vue项目中,实现pdf文件的预览、下载和打印(pc端)

二、实现方法

使用window.open(URL,name,specs,replace)实现

该方法用于打开一个新的浏览器窗口或查找一个已命名的窗口。
方法包含的参数:
在这里插入图片描述
详细使用方法请查看:菜鸟教程

实现代码

pdf组件

<template>
  <div class="pdf-contain">
    <el-link type="primary" @click="downPdf">{{ pdfItem.title }}</el-link>
  </div>
</template>
<script>
export default {
  name: "Pdf",
  props: {
    pdfItem: Object,
  },
  data() {
    return {};
  },
  methods: {
    downPdf() {
      window.open(this.pdfItem.url);
    },
  },
};
</script>

父组件调用
先导入组件import xPdf from "@/components/Pdf/index.vue";
在页面中使用

<template>
<div v-for="item in pdfList" :key="item.title">
    <x-pdf :pdfItem="item"></x-pdf>
</div>
</template>
<script>
export default {
 // 测试pdf
      pdfList: [
        {
          title: "git",
          url: "/static/Git.pdf",
        },
        {
          title: "开发和规范",
          url: "/static/阿里前端开发规范.pdf",
        },
      ],
};
</script>

实现效果

在这里插入图片描述
在这里插入图片描述

总结

该方法适用于对pdf文件需求不高的项目,使用了浏览器的window对象对pdf进行操作,不需要考虑浏览器兼容性问题。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. pdf文件打印 使用 pdf.js 库可以实现 pdf 文件的打印功能。具体实现步骤如下: 1. 在 Vue 安装 pdf.js 库。 ``` npm install pdfjs-dist ``` 2. 在组件引入 pdf.js 库,并初始化 PDFJS 对象。 ```javascript import pdfjsLib from 'pdfjs-dist/webpack' pdfjsLib.GlobalWorkerOptions.workerSrc = 'pdfjs-dist/build/pdf.worker.js' ``` 3. 加载 pdf 文件,并获取其打印页面。 ```javascript pdfjsLib.getDocument(pdfUrl).then(pdf => { pdf.getPage(pageNumber).then(page => { const scale = 1 const viewport = page.getViewport({ scale }) const canvas = document.createElement('canvas') const context = canvas.getContext('2d') canvas.height = viewport.height canvas.width = viewport.width page.render({ canvasContext: context, viewport }).promise.then(() => { const imgData = canvas.toDataURL('image/png') const printWindow = window.open('', '', 'height=600,width=800') printWindow.document.write(`<img src="${imgData}"/>`) printWindow.print() }) }) }) ``` 2. pdf浏览 Vue 可以使用 vue-pdf 插件实现 pdf 文件的浏览功能。具体实现步骤如下: 1. 在 Vue 安装 vue-pdf 插件。 ``` npm install vue-pdf ``` 2. 在组件使用 vue-pdf 插件,并传入 pdf 文件的 URL。 ```html <template> <div> <pdf :src="pdfUrl" /> </div> </template> <script> import { PdfViewer as Pdf } from 'vue-pdf' export default { components: { Pdf, }, data() { return { pdfUrl: 'https://example.com/pdf-file.pdf', } }, } </script> ``` 3. pdf下载 在 Vue 可以使用 HTML5 的 download 属性实现 pdf 文件的下载功能。具体实现步骤如下: ```html <a :href="pdfUrl" download>Download PDF</a> ``` 在上面的代码,我们使用了 download 属性来指定文件的下载链接。当用户点击链接时,浏览器会自动下载指定的文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值