前言

根据自身当下技术的水平和实际情况,做一个简单的记录。

需求描述

在项目中有采购合同和销售合同,这些合同新建好之后都需要有人去审核,审核通过后需要把合同生成一个pdf文件然后后端给保存起来

在项目中有采购合同和销售合同,这些合同新建好之后都需要有人去审核,审核通过后把最新的合同页面生成一个pdf(采用的是前端自动生成pdf),需要注意的是生成好pdf之后不下载,需要把pdf文件流上传到后端.

实现方案

思路: 通过 html2canvas 将 HTML 页面转换成图片,然后再通过 jspdf 将图片的 base64 生成为 pdf 文件。

Vue中 前端实现生成 PDF 并下载参考文章:https://developer.aliyun.com/article/1087042#comment
前端vue的JsPDF html2canvas 生成pdf并以文件流形式上传到后端:https://blog.csdn.net/qq_38594056/article/details/118212082

当然在过程中也遇到了一些问题,如安装组件库,这里项目使用的是Jeecg-boot开源框架,一开始使用npm安装html2canvas、jspdf怎么都下载不下来,可能是因为网络的问题,因为npm包管理器的源是在国外,所以想着使用npm国内的镜像,安装npm源的淘宝镜像,命令如下:

npm install cnpm

如果需要全局安装可以执行如下命令:

npm install cnpm -g

接下来再依次安装html2canvas、jspdf,命令如下:

cnpm install html2canvas --save

cnpm install jspdf --save

补充:我这里Node版本是v16.13.2,npm版本是9.7.2

功能需求-根据页面生成pdf,pdf不需要下载只需把文件流上传到服务器相关推荐

  1. vue 后台返回的文件流进行预览_vue项目-pdf预览和下载,后台返回文件流形式

    背景:正好最近碰到了这种需求,记录下来,方便以后查看. 后端返回的文件流数据如下图所示: 后台返回数据.png 一.pdf的预览 一开始的时候百度了很多方法,有建议用pdfJs插件的,有iframe嵌 ...

  2. SpringBoot+Vue+mybatis生成pdf文件(表头跟页码,适应上传linux服务器后的操作)

    SpringBoot+Vue+mybatis生成pdf文件(表头跟页码,适应上传linux服务器后的操作) 为什么使用后端去生成 说明 依赖 后端目录 控制器代码 模板代码 前端代碼 最終效果 为什么 ...

  3. pdf如何转word?只需两步即可完成在线pdf转word

    pdf格式文档良好的阅读性以及便捷性,使得其得到了越来越广泛的使用,但是如果我们想要对其中的某些内容进行二次编辑的时候就比较不方便了,需要先将pdf转word后再使用,那么pdf如何转word呢?今天 ...

  4. 打包成apk,生成apk文件,上传到网站服务器提供链接下载

    Android开发把项目打包成apk: 做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android ...

  5. java0到9的字符怎么表示_java,_java 怎么生成一个0-9,a-z的一个44位字符串作为上传文件的名字,java - phpStudy...

    java 怎么生成一个0-9,a-z的一个44位字符串作为上传文件的名字 找到一个时间MD5加密的 package org.blog.controller; import java.io.File; ...

  6. 上传文件服务器怎么做,图片上传到服务器后怎么生成可直接访问的链接

    我在客户端做头像上传,图片上传到服务器后保存在一个固定的文件夹内,现在我如何在客户端读取到这张图片. 运行环境是后端是node koa 相关代码exports.editcover = async (c ...

  7. 转换文档参数_Word、Excel、PDF多格式转换?只需1招全搞定

    在工作学习中,我们常常会遇到一些文档需要进行格式转换,比如Word文档.excel表格与PDF的互转需求.而想要实现这一操作的技巧有很多,但今天君君要分享的这个PDF转换工具基本可以覆盖全平台了,真正 ...

  8. 【微信小程序】小程序实现文件的上传及预览,以PDF文件为例。

    安卓系统和ios系统 一开始被一篇ios预览PDF文件需要用到webview的博客给误导了,以为安卓预览文件需要调用wx.downloadFile()和wx.openDocument()这两个API, ...

  9. ajax实现文件的上传(局部刷新页面,文件上传)

    一.前端jsp页面代码: //注意,这里的form表单,只去id名 <form id="localAjax">文件:<input type="file& ...

最新文章

  1. NSDate NSCalendar NSString之间的故事以及转换
  2. zabbix学习(四)IT_Service管理
  3. 是什么影响了MySQL性能?
  4. Equipment download和自动生成的IBASE DB 信息
  5. 萧山职称计算机考试培训,浙江萧山2017年职称计算机考试时间安排
  6. 从特征分解到协方差矩阵:详细剖析和实现PCA算法
  7. mysql 回滚失败_Mysql非事务表回滚失败的现象
  8. NOI入门级数学: 数及其运算 数的进制之二进制
  9. c#遍历一个文件夹下的所有文件包括子文件夹【原】
  10. 给定字符串,实现大小写之间的转换
  11. mysql重复添加计数_从MySQL中的单个列获取重复值的计数?
  12. mybatis学习笔记(10)-一对一查询
  13. 16QAM学习(二)multisim仿真 乘法器的实现,MC1496实现信号乘法混合
  14. 写了个算分压电阻阻值的MATLAB小程序
  15. html2canvas.js 截屏微信头像不显示
  16. 查找计算机里包含相关文字,搜索word包含文字内容
  17. 文献分析工具Connected Papers
  18. 蔚来汽车提前批2022年7月13日
  19. 使用nat123进行内网穿透
  20. vue3项目ts文件引入LodopFuncs.js打印控件

热门文章

  1. vue3 | 数据可视化实现数字滚动特效
  2. python基础编程-1
  3. easypoi使用list导出word修改字体大小以及字体样式
  4. mysql unique的用法_MySQL使用UNIQUE实现数据不重复插入
  5. linux系统环境变量及用户环境变量的配置
  6. 信用评分卡--R语言
  7. 拨号被远程计算机终止出现619,网络错误代码大全.doc
  8. 你的程序员是一种什么样的怪物?
  9. 南有万峰,北有李大夫
  10. NLP——Tokenizer