二、pdf.js的使用


一、PDF.js的使用

1、简单介绍

  最近做了个事,工作中遇到一个需求,就是要在线显示pdf,那咋办,我这垃圾小白也没做过。于是乎问了老大,老大说用pdf.js。然后乎我就去看了一下,发现好用又简单。既然这么实用那就给记下来吧!!!!!

2、使用PDF.js

2.1、下载pdf.js

  首先啊,我们不需要额外下载插件,而是直接去官网,下载pdf.js的文件。下面附上下载链接

pdf.js官网

2.2、在项目中添加pdf.js

  下载后的文件结构是这样的,三个子文件,build、web、license。这个license是可以直接删除的,没啥用。

  那么我们呢直接把整个文件夹放进我们项目中的public文件夹下面就好啦!这样就可以用啦

2.3、在项目中使用pdf.js

  那么怎么使用呢?首先啊,我们还是得用到upload组件,因为我们要上传pdf文件给后台,upload组件在音频那块已经说过了,这里简单说一下吧。。。那个那个回调函数就不写了啊,大家可以去看audio音频的那个文章,也是这个系列的。那么我们上传过pdf之后啊,后台会返回这个文件的标识:xxxxxxxxx.pdf

  有了这个标识后我们应该怎么办呢,当然是调用接口啦,比如说这个接口叫:getPdfData,假装引用一下。接口是后端写的,我们以上传返回后的文件标识为参数调用改接口,然后接口会返回一个地址,这就是文件的地址了。

<template>
  <div class="container">
    <Upload ref="uploadStandardWord" style="display:inline-block" :action="uploadObj.action" :multiple="false" :show-upload-list="false" :accept="uploadObj.accept" :format="uploadObj.format" :max-size="uploadObj.maxSize" :on-exceeded-size="exceededSizeFun" :on-format-error="formatError" :on-success="(response)=>handleSuccess(response)" :on-error="handleError">
    </Upload>
    <button @click="openPDF">在新窗口打开pdf</button>
  </div>
</template>
<script lang="ts">
import { Vue, Component } from 'vue-property-decorator';
import { getPdfData } from '@/assets/js/utils';

@Component({
  components: {

  }
})
export default class TestCase extends Vue {
  uploadObj: {
    action: string;
    accept: string;
    maxSize: number;
    format: Array<string>;
    data: any;
  } = {
      action: '/graphApi/api/v1/common/source/file/upload',
      accept: '.pdf',
      format: ['pdf'],
      maxSize: 1024 * 1024, //1个G
      data: {}
    }

  public async openPDF() {
    //params是接口参数,问后端
    const res = awiat getPdfData(params);
    if(res) {
      //window.open就是在新窗口打开网页,然后引用pdf.js的文件,并且把地址传进去就好了,是不是很简单
      window.open(`/pdf/web/viewer.html?file=${encodeURIComponent(res.pdfUrl)}`);
    }
  }
}
<script>

文章作者: 吴俊杰
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 吴俊杰 !
 上一篇
三、多audio标签的协调 三、多audio标签的协调
平常我们用audio的时候,都是一次性用到好几个,那么一个页面有好几个音频标签的时候,怎么协调多个音频的播放暂停呢......
2024-10-01
下一篇 
一、资源制作性能优化 一、资源制作性能优化
资源制作流程卡顿,竟然连文本输入都卡,出手解决它,利用谷歌开发者工具的performance选项卡和summary选项卡排查问题......
2024-10-01
  目录