首页 > 其他分享 >vue 渲染pdf并盖章之后生成新的pdf

vue 渲染pdf并盖章之后生成新的pdf

时间:2024-03-15 19:32:22浏览次数:22  
标签:盖章 文件 canvas vue 渲染 生成 pdf

目录

1.渲染pdf

 1.页面准备渲染的容器,使用canvas渲染

2.把文件流渲染到canvas上面

3.下载pdf.js插件

4.使用 

2.盖章

1.印章图片

2.自定义指令拖拽

3.生成新的pdf 

1.下载生成pdf插件

2.使用 

4.页面效果图 

1.展示pdf 

2.拖拽盖章

3.生成pdf文件 

5.整体代码


1.渲染pdf

注意:在线链接会有跨域问题,生成pdf无法显示

使用在线的pdf链接 可以使用iframe渲染但是导出无法显示

<iframe :src="url" height="800px;" width="100%"></iframe>

 需要后端返回base64或者blob格式或者二进制文件流才可以

接收后端返回的二进制流需要配置请求,不然会乱码

// 获取在线pdf文件的文件流
export function getPdfWorldApi(data) {
    return request({
        url: '/api/www/www',//请求地址
        method: 'POST',//请求方式
        data,//参数
        responseType: 'blob', //获取二进制流设置接收类型,不设置会乱码
    })
}

 1.页面准备渲染的容器,使用canvas渲染

<div v-for="(item, i) in canvasPage" :key="i">
    <canvas :id="`pdf_canvas_${item}`"></canvas>
</div>

标签:盖章,文件,canvas,vue,渲染,生成,pdf
From: https://blog.csdn.net/weixin_70563937/article/details/136502739

相关文章

  • vue3+element plus表格实现单选功能
    现有一个需求,表格单选带radio的效果,目前UI库还不支持。只能自行实现:贴下效果图: 用到vue3+elementplus:关键代码:<!--表格--><el-tableref="refsTable"@row-click="clickRow":data="tableData"height="260px"highlight-current-row><el......
  • ofd格式的文件可以转成pdf格式吗?
    OFD格式的文件是一种电子公文交换和存储的一种格式标准,它是一种开放固定版式的文档。这种格式的文档具有永久可读,版面固定,安全且不易被篡改以及占用体积小的优点。可以说OFD是中国版的PDF,它现在已经逐渐被应用在电子发票、电子公交、电子文档等领域上。那么可以实现将OFD转换成我......
  • Vue学习笔记53--消息订阅与发布
    消息订阅与发布1.订阅消息(需要数据的人):消息名称2.发布消息(提供数据的人):消息内容注:1.订阅名称和发布名称一致2.需要数据的人--订阅消息;提供数据的人--发布消息 示例一:第一步:安装支持库安装第三方支持库:pubsub.js(退出项目运行后执行以下命令,安装库文件)npmipu......
  • [vue3 配置] import 图片无法识别的问题
    vue3引入图片,路径没错,但无法识别importdefaultImagefrom'@/assets/column.jpg'Cannotfindmodule'@/assets/column.jpg'oritscorrespondingtypedeclarations.为啥报这个错误?typescript无法识别图片文件,需要在配置中增加声明新建image.d.ts文件/*eslint-disable......
  • Vue3的diff算法
    //https://github.com/vuejs/core/tree/main/packages/runtime-core/src/renderer.ts//https://github.com/vuejs/core/tree/main//packages/runtime-test/src/nodeOps.tsexportfunctiondiff(oldCh,newCh){letoldEndIndex=oldCh.length-1;letnewEndI......
  • Vue2的diff算法
    exportfunctiondiff(oldCh,newCh){letoldStartIndex=0;letnewStartIndex=0;letoldEndIndex=oldCh.length-1;letoldStartVnode=oldCh[0];letoldEndVnode=oldCh[oldEndIndex];letnewEndIndex=newCh.length-1;let......
  • vue 3+TS 封装自定义右键全局菜单(虚拟节点)
    有时我们需要点击(右键或左键)某个元素时弹出菜单,实现复制、粘贴、删除等功能。本文将介绍如何封装一个自定义的右键全局菜单(无三方依赖)。封装的菜单可自定义菜单项,图标,禁用,分割线,隐藏等。并且可以在全局任意地方使用。源码在文章末尾。效果使用<template><div>......
  • Vue学习笔记52--全局事件总线
    Vue全局事件总线:一种组件之间通信的方式,适用于任意组件之间通信。1.所有组件,即VueComponent所有的组件实例对象vc2.每次使用VueComponent都是new一个新的vc3.Vue.prototype=VueComponent.prototype.__proto__(可以让组件实例对象vc访问到Vue原型上的属性、方法)4.$emit、$o......
  • vue3 中ref和reactive的区别讲解
    1.定于数据角度对比:ref用来定义:基本类型数据reactive用来定义:对象、或数组类型的数据备注:ref也可以用来定义对象或数组类型数据,它内部会自动通过reactive转为代理对象2.原理角度对比:ref通过Object.defineProperty()的get与set来实现响应式的(数据劫持)reactive通过......
  • 创建Vue项目的三种方式
    1、vuecreate(首选)createanewprojectpoweredbyvue-cli-service以这种方式创建的项目,vue版本是当前最稳定的版本,不是最新的。首先打开控制台,输入下面的命令。vuecreate项目名称按键盘上的上下键,选择Manuallyselectfeatures(手动配置)。通过↑↓箭头选择你......