1.图片路径后面加?any_string_is_ok
2.图片加crossOrigin="anonymous"属性
3.html2canvas加useCORS: true
4.前端跨域完成,如果安卓调用,安卓也要处理跨域
<img src="~@/assets/hosLogo.png?any_string_is_ok" crossOrigin="anonymous">
let pdfContent = document.querySelector('#AssessmentForm')
html2canvas(pdfContent, { scale: 2, useCORS: true }).then(async (canvas) => {
const contentWidth = canvas.width
const contentHeight = canvas.height
const pageHeight = (contentWidth / 560.28) * 829.89
let leftHeight = contentHeight
let position = 12
const imgWidth = 560.28
const imgHeight = (imgWidth / contentWidth) * contentHeight
const pageData = canvas.toDataURL('image/jpeg', 1.0)
const pdf = new jsPDF('', 'pt', 'a4')
if (leftHeight < pageHeight) {
pdf.addImage(pageData, 'JPEG', 30, 12, imgWidth, imgHeight)
} else {
while (leftHeight > 0) {
pdf.addImage(pageData, 'JPEG', 30, position, imgWidth, imgHeight)
leftHeight -= pageHeight
position -= 829.89
if (leftHeight > 0) {
pdf.addPage()
}
}
}
const dataUrl = pdf.output('datauristring')
const base64 = dataUrl.split('base64,')[1]