当前位置: 首页 > news >正文

平面设计网站培训中心网页排版软件

平面设计网站培训中心,网页排版软件,天津网站开发技术,百度关键词指数工具在工作中可能会遇到前端展示pdf文件进行预览并提供下载的需求场景,例如操作指引,这个时候需要寻找一款实现该功能的插件,以pdjjs举例子 1. 安装pdf.js npm install pdfjs-dist2. 引入pdf.js import pdfjsLib from pdfjs-dist3.加载pdf文件流 这个地方区分是请求后端接口还是…

在工作中可能会遇到前端展示pdf文件进行预览并提供下载的需求场景,例如操作指引,这个时候需要寻找一款实现该功能的插件,以pdjjs举例子

1. 安装pdf.js

npm install pdfjs-dist

2. 引入pdf.js

import pdfjsLib from 'pdfjs-dist'

3.加载pdf文件流

这个地方区分是请求后端接口还是直接加载本地pdf文件

如果是请求后端获取到的pdf文件流

axios.get('/api/pdfdoc', { responseType: 'blob' }).then(response => {const blob = new Blob([response.data], { type: 'application/pdf' })this.viewPdf(blob)})

如果是读取本地的文件,则url地址直接是本地的地址

在viewPdf()方法中,使用getDocument()方法加载pdf文件:

viewPdf(fileUrl){
let _this = this;
PDFJS.getDocument(fileUrl).then(fileContent =>{
_this.pdfDoc = fileContent;
setTimeout(()=>{
_this.renderPage();
},100)
})},

4. 渲染pdf

使用pdf.js的Renderer渲染pdf文件。可以使用getViewport()方法获取pdf页面的视图大小。

在renderPdf()方法中,遍历pdf文件的每个页面,并使用Renderer将其渲染:

renderPage(){
// 获取页面canvas节点
let canvas = document.getElementById('infoPrvacy-content');
const ctx = canvas.getContext("2d");
this.pdfDoc.getPage(1).then(page =>{
// 文件页面的视图 1倍
const viewport = page.getViewport(0.5);
// 将画布宽度设置为视图宽度
canvas.width = viewport.width;
canvas.height = viewport.height;const renderContext = {
canvasContext: ctx,
viewport: viewport
};
console.log(renderContext);
// 渲染页面内容:参数是canvas画布上下文,以及文件视图
page.render(renderContext);
})
},

注意: 一定要引用字体包,否则会乱码

const obj = {};
obj.cMapUrl = '/assets/pdfjs/cmaps/';
obj.cMapPacked = true;
obj.url = './static/test.pdf'
this.viewPdf(obj)

js部分的代码

<script>
const pdfJS = require("pdfjs-dist");pdfJS.GlobalWorkerOptions.workerSrc = require("pdfjs-dist/build/pdf.worker.entry");
export default {mounted() {},data() {return {pageNo: null,pdfPageNumber: null,pdfTotalPages: 1,renderingPage: false,pdfData: null, // PDF的base64scale: 1, // 缩放值};},methods: {uploadFile() {let inputDom = this.$refs.fielinput;let file = inputDom.files[0];let reader = new FileReader();reader.readAsDataURL(file);reader.onload = () => {let data = atob(reader.result.substring(reader.result.indexOf(",") + 1));this.loadPdfData(data);};},loadPdfData(data) {// 引入pdf.js的字体let CMAP_URL = "https://unpkg.com/pdfjs-dist@2.0.943/cmaps/";//读取base64的pdf流文件this.pdfData = pdfJS.getDocument({data: data, // PDF base64编码cMapUrl: CMAP_URL,cMapPacked: true,});console.log(this.pdfData);this.renderPage(1);this.renderScrollPdf();},// 根据页码渲染相应的PDFrenderPage(num) {this.renderingPage = true;this.pdfData.promise.then((pdf) => {this.pdfPageNumber = pdf.numPages;pdf.getPage(num).then((page) => {// 获取DOM中为预览PDF准备好的canvasDOM对象let canvas = this.$refs.myCanvas;let viewport = page.getViewport(this.scale);canvas.height = viewport.height;canvas.width = viewport.width;let ctx = canvas.getContext("2d");let renderContext = {canvasContext: ctx,viewport: viewport,};page.render(renderContext).then(() => {this.renderingPage = false;this.pageNo = num;});});});},clickPre() {if (!this.renderingPage && this.pageNo && this.pageNo > 1) {this.renderPage(this.pageNo - 1);}},clickNext() {if (!this.renderingPage &&this.pdfPageNumber &&this.pageNo &&this.pageNo < this.pdfPageNumber) {this.renderPage(this.pageNo + 1);}},renderScrollPdf() {this.pdfData.promise.then((pdf) => {this.pdfTotalPages = pdf.numPages;this.renderScrollPdfPage(1);});},},
};
</script>
http://www.yayakq.cn/news/242454/

相关文章:

  • 网站取源用iapp做软件自己做的小网站如何发布
  • 西安市城乡房地产建设管理局网站外贸平台app下载
  • 吉林建设厅网站首页鞍山市住房和城乡建设网站
  • 地方门户网站的出路什么是模板建站
  • 推广网站赚钱邢台wap网站建设
  • 专业制作网站费用关键词搜索量查询工具
  • wordpress用户权限在哪改seo站长工具箱
  • 如何建论坛网站六安人论坛
  • wordpress 代做网站商丘做网站优化的公司有哪些
  • 百度网站好评网站定制设计价目表
  • wordpress没有上级目录的写权限深圳做seo有哪些公司
  • 南宁网站搜索引擎优化ppt万能模板免费下载
  • 在线定制头像免费重庆seo网络优化师
  • t恤在线设计网站东莞市公司网站建设平台
  • 东莞公司高端网站建设wordpress定时器插件
  • 信息型网站建设的目的定位wordpress搬家文章
  • 邯郸网站建有哪些网站可以做全景效果图
  • 1元做网站方案网站建设 设计那种连接线厂家
  • 邵阳市 网站建设网站推荐你了解我意思吧
  • 淘宝网站icp备案铜陵网站优化
  • 西部数码网站管理助手c盘安装建一个app要多少钱
  • 如何修改网站备案的域名汽车行业网站建设比较
  • 创新网站设计seo搜索工具栏
  • 宏宇网站建设怎么用花生壳做网站
  • 微信微网站是什么格式wordpress创建单页
  • 甘肃交通工程建设监理公司网站制作logo网站
  • 2023网站seoyw1139com最新跳转接口p
  • 网站建设后期修改齐河县工程建设监理有限公司网站
  • 做网站建设有前景吗一站传媒seo优化
  • 广东网站建设微信网站定制无锡产品排名优化