8

最近项目中需求为在浏览器上阅览PDF格式的文件,之前没有写过,随即上网查阅,发现大家常使用的为两个插件。
其一是火狐出品的pdf.js,github地址:https://github.com/mozilla/pd...;
其二是PDFObject,额,不太清楚作者,github地址:https://github.com/pipwerks/P...
前者功能强大,社区活跃,后者是基于jquery封装出来的插件,要是在vue中混着jquery总感觉怪怪的,所以我选择了前者。
又看了一下有没有轮子可用,诶嘿,vue-pdf,github地址:https://github.com/FranckFrei...。看了文档,可取。
首先下载插件(建议先新建一个demo出来跑,直接撸到开发项目中...出什么幺蛾子...)

// 我使用的是yarn npm的话 npm install vue-pdf --dev
yarn add vue-pdf --dev

然后在vue文件中引入使用,建议新建一个vue文件二次封装

<template>
  <div class="pdf-container">
    <pdf :src="pdfUrl"/>
  </div>
</template>

<script>
import pdf from 'vue-pdf'
export default {
  name: 'VuePdf',
  components: { pdf },
  data() {
    return {
      // 此处为示例pdf地址
      pdfUrl: 'http://image.cache.timepack.cn/nodejs.pdf'
    }
  }
}
</script>

之后就可以愉快的玩耍了。

不过我迁移到公司项目的时候遇到一个坑,引入这个插件的时候就会报错window is not defined,后来查询资料发现这篇文章,问题才得已解决,感谢作者。https://blog.csdn.net/u010745...

只需要在webpack中设置如下

module.exports = {
  // 请忽视这无关的代码
  output: {
    globalObject: "this"
  }
  // 请忽视这无关的代码
}

以上。


你的代码
67 声望1 粉丝

岁月流逝