视频链接:
链接:
本文转载于B站大佬:王清江哊,仅用于学习和讨论,感谢大佬的分享 ^_^:
第一步:安装和依赖:
npm install vue-pdf
第二步:写两个Vue文件
<template> <div> <div class="tools"> <el-button :theme="'default'" type="submit" :title="'上一页'" @click.stop="prePage" class="mr10"> 上一页</el-button> <el-button :theme="'default'" type="submit" :title="'下一页'" @click.stop="nextPage" class="mr10"> 下一页</el-button> <div class="page">{{ pageNum }}/{{ pageTotalNum }}</div> <el-button :theme="'default'" type="submit" :title="'顺时针旋转'" @click.stop="clock" class="mr10"> 顺时针旋转</el-button> <el-button :theme="'default'" type="submit" :title="'逆时针旋转'" @click.stop="counterClock" class="mr10"> 逆时针旋转 </el-button> <el-button :theme="'default'" type="submit" :title="'打印'" @click.stop ="pdfPrintAll" class="mr10"> 打印</el-button> </div> <PDF ref="pdf" :src="url" :page="pageNum" :rotate="pageRotate" @progress="loadedRatio = $event" @page-loaded="pageLoaded($event)" @num-pages="pageTotalNum=$event" @error="pdfError($event)" @link-clicked="page = $event"> </PDF> </div> </template> <script> import PDF from 'vue-pdf' export default { name: "testPPT", components: { PDF }, data() { return { page: null, previewDialog: false, url: "http://wangqingjiang.top/prod-api/profile/upload/2022/09/26/%E5%B0%9A%E7%A1%85%E8%B0%B7_%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF_Vue%E5%85%A8%E5%AE%B6%E6%A1%B6_20220926214043A004.pdf", pageNum: 1, pageTotalNum: 1, pageRotate: 0, // 加载进度 loadedRatio: 0, curPageNum: 0, } }, methods: { /** * 预览PDF */ previewPDF(row, index) { this.previewDialog = true; console.log("", row, index); }, // 上一页函数, prePage() { console.log(this.page) var page = this.pageNum page = page > 1 ? page - 1 : this.pageTotalNum this.pageNum = page }, // 下一页函数 nextPage() { var page = this.pageNum page = page < this.pageTotalNum ? page + 1 : 1 this.pageNum = page }, // 页面顺时针翻转90度。 clock() { this.pageRotate += 90 }, // 页面逆时针翻转90度。 counterClock() { this.pageRotate -= 90 }, // 页面加载回调函数,其中e为当前页数 pageLoaded(e) { this.curPageNum = e }, // 错误时回调函数。 pdfError(error) { console.error(error) }, // 打印全部 pdfPrintAll() { /** * 打印界面字符乱码是因为你pdf中使用了自定义字体导致的,谷歌浏览器打印的时候预览界面真的变成了真·方块字 ,解决方案如下: * 用文章最后的pdfjsWrapper.js在替换掉node_modules/vue-pdf/src/pdfjsWrapper.js */ console.log("打印"); this.$refs.pdf.print() }, } } </script> <style scoped> </style>
第三步:跳转路由:
{ path: '/testPPT', component: () => import('@/views/testPPT'), hidden: true },
第四步: 最终效果
你可以购买金山的服务
数据库文档预览非常简单好看的样式
做的非常漂亮
调用金山的接口,比自己的强多了
gitee搜索vue在线浏览word
这样搜的