项目需要生成PDF,转为file上传到附件服务器,东拼西凑了下面的方法
JavaScript
/**
* @param html { String } DOM树
* @param isOne { Boolean } 是否为单页 默认 否(false)
* @return 文件 {pdf格式}
*/
setPrint(html,isOne) {
let html = document.getElementById("doa_print_pdf_content");
let contentWidth = html.clientWidth; // 获得该容器的宽
let contentHeight = html.clientHeight; // 获得该容器的高
let canvas = document.createElement("canvas");
let scale = 1; // 解决清晰度问题,先放大 2倍
canvas.width = contentWidth * scale; // 将画布宽&&高放大两倍
canvas.height = contentHeight * scale;
canvas.getContext("2d").scale(scale, scale);
let opts = {
scale: scale,
canvas: canvas,
width: contentWidth,
height: contentHeight,
useCORS: true,
};
return this.$html2canvas(html, opts).then((canvas) => {
let pageData = canvas.