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

茂名平安建设网站九江市建筑公司

茂名平安建设网站,九江市建筑公司,男人都懂的填空题2023,如皋住房和城乡建设局网站#x1f680; 场景一#xff1a;利用vue向pdf文件中写入二维码图片或其他图片 #x1f680; 场景二#xff1a;向pdf中添加水印 思路#xff1a; 1、先通过url链接生成二维码#xff0c;二维码存在于dom中 2、使用html2canvas库将二维码的dom转为一个canvas对象 3、根据c… 场景一利用vue向pdf文件中写入二维码图片或其他图片 场景二向pdf中添加水印 思路 1、先通过url链接生成二维码二维码存在于dom中 2、使用html2canvas库将二维码的dom转为一个canvas对象 3、根据canvas对象获取blob中的buffer 4、最后将这个二维码以图片的形式嵌入到pdf文件流中 安装依赖 npm i html2canvas npm i qrcodejs2-fixes npm i pdf-lib引入 import html2canvas from html2canvas import QRCode from qrcodejs2-fixes import { degrees, PDFDocument } from pdf-lib封装 封装qrToPdf.js用的时候直接调用该方法将pdf文件流blob对象和二维码url链接地址传入进去 就可以我这里就以window打开一个新页签预览处理之后的pdf为例了真实项目也可能是下载都是差不多的下载也很简单通过a标签window.URL.createObjectURL转为一个路径然后给a标签增加download属性值为文件名称click即下载了 src/utils/qrToPdf.js import html2canvas from html2canvas import QRCode from qrcodejs2-fixes import { degrees, PDFDocument } from pdf-libexport default function ({ pdfBlob, qrcodeUrl https://www.baidu.com/ }) {if(!pdfBlob) returnpdfBlob.arrayBuffer().then(async buffer {const pdfDoc await PDFDocument.load(buffer)const qrcodeDom document.createElement(div)qrcodeDom.id wft-qrcodedocument.body.appendChild(qrcodeDom)new QRCode(document.getElementById(wft-qrcode), {text: qrcodeUrl,width: 128,height: 128,colorDark: #000000,colorLight: #ffffff,correctLevel: QRCode.CorrectLevel.H,})html2canvas(document.getElementById(wft-qrcode)).then(canvas {canvas.toBlob(qrcodeBlob {qrcodeBlob.arrayBuffer().then(async qrcodeBuffer {const image await pdfDoc.embedPng(qrcodeBuffer)const dims image.scale(0.6)const pages pdfDoc.getPages()for (let i 0; i pages.length; i) {let page pages[i]const { width, height } page.getSize()page.drawImage(image, {x: width - 100, // 距离右侧100y: height - 100, // 距离上侧100 就是右上角width: dims.width,height: dims.height,rotate: degrees(0)})}const pdfBytes await pdfDoc.save()preView(pdfBytes)document.body.removeChild(qrcodeDom)})}, image/png)})}) }// 打开新页签预览 function preView(stream, docTitle 测试PDF) {const URL window.URL || window.webkitURL;// href 就是生成的pdf地址可以拿到href做不通操作下载预览等等const href URL.createObjectURL(new Blob([stream], { type: application/pdf;charsetutf-8 }))const wo window.open(href)// 设置新打开的页签 document titlelet timer setInterval(() {if (wo.closed) {clearInterval(timer)} else {wo.document.title docTitle}}, 500) }引入调用使用的时候 previewEmbedQrcodeToPdf({pdfBlob: file, // 你的文件流qrcodeUrl: xxxx // 你的生成二维码的url链接 })案例(Vue3) vue2大致写法都一样 templatediv classmaininput idfileInp typefile/div /template script setup import { onMounted, onUnmounted } from vue import previewEmbedQrcodeToPdf from /utils/qrToPdflet cusInp nullonMounted(() {cusInp document.getElementById(fileInp)cusInp.addEventListener(input, inpHander) })onUnmounted(() {cusInp.removeEventListener(input, inpHander) })function inpHander(event) {const file event.target.files[0]if(!file) returnpreviewEmbedQrcodeToPdf({pdfBlob: file}) } /script style scoped .main {width: 100%;height: 100%; } /style合成预览图 此博客主要参考https://blog.csdn.net/m0_51431448/article/details/131216664 Vue向Pdf添加水印https://blog.csdn.net/m0_51431448/article/details/129539428?spm1001.2014.3001.5501
http://www.ho-use.cn/article/10823275.html

相关文章:

  • 淘宝的网站架构近一周的新闻大事热点
  • 网站扩展性建立主题网站的知识点
  • 做网站公司的收费多少已备案域名购买网址低价
  • 外贸建设企业网站服务宁波做外贸网站建设
  • 爱站网关键词挖掘工具怎样在网上推广自己的产品
  • 大型租车门户网站商业版源码软件商店安装app
  • 烟台网站搭建app软件推广怎么做
  • 美食网站黑米如何做有个域名怎样做网站
  • 优秀网站设计的标准重庆做网络推广的公司
  • 如何快速做企业网站包括商城会员制营销方案
  • 学校网站建设运行简介珠海网站建设维护
  • 建网站 开发app侯马网站建设
  • 怎么做律所的官方网站如何用微信公众号做企业网站
  • 免费的中文logo网站wordpress视频主题
  • 深圳网站建设行业新闻云凡济南网站建设开发
  • 大学生做家教比较好的网站网站关键词抓取
  • 网站开发与设计课程时间如何用wordpress快速建站
  • 网站程序开发直邮网站的推广活动怎么做
  • 美橙专业建站万网个人网站怎么备案
  • 常州网站建设公司信息网站建设宣传图片
  • 网站建设调查问卷改版网站收费
  • 织梦cms建站如何做网上水果网站系统
  • 上虞网站建设文广网络wordpress 小程序 商城
  • 做爰xo的视频网站试看app推广有哪些渠道
  • 装饰行业网站模板抖音营销ppt课件
  • 如何做网站步骤修改wordpress后台登录
  • 信息图制作网站建设银行官方网站买五粮液酒
  • 简洁网站首页模板无线网二维码推广
  • seo发包技术电子商务seo实训总结
  • 南京做网站具体需要多少钱小户型装修效果图