Fix:修复导出pdf时异步控制丢失的问题
This commit is contained in:
parent
c716ec7294
commit
3d7f0fcbe7
@ -228,7 +228,7 @@ class Export {
|
||||
if (width <= a4Size.width && height && a4Size.height) return false
|
||||
return width / height > 1
|
||||
})
|
||||
this.mindMap.doExportPDF.pdf(name, img, useMultiPageExport)
|
||||
await this.mindMap.doExportPDF.pdf(name, img, useMultiPageExport)
|
||||
}
|
||||
|
||||
// 导出为xmind
|
||||
|
||||
@ -9,16 +9,17 @@ class ExportPDF {
|
||||
}
|
||||
|
||||
// 导出为pdf
|
||||
pdf(name, img, useMultiPageExport = false) {
|
||||
async pdf(name, img, useMultiPageExport = false) {
|
||||
if (useMultiPageExport) {
|
||||
this.multiPageExport(name, img)
|
||||
await this.multiPageExport(name, img)
|
||||
} else {
|
||||
this.onePageExport(name, img)
|
||||
await this.onePageExport(name, img)
|
||||
}
|
||||
}
|
||||
|
||||
// 单页导出
|
||||
onePageExport(name, img) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let pdf = new JsPDF('', 'pt', 'a4')
|
||||
let a4Ratio = a4Size.width / a4Size.height
|
||||
let image = new Image()
|
||||
@ -49,12 +50,18 @@ class ExportPDF {
|
||||
h
|
||||
)
|
||||
pdf.save(name)
|
||||
resolve()
|
||||
}
|
||||
image.onerror = e => {
|
||||
reject(e)
|
||||
}
|
||||
image.src = img
|
||||
})
|
||||
}
|
||||
|
||||
// 多页导出
|
||||
multiPageExport(name, img) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let image = new Image()
|
||||
image.onload = () => {
|
||||
let imageWidth = image.width
|
||||
@ -93,8 +100,13 @@ class ExportPDF {
|
||||
}
|
||||
}
|
||||
pdf.save(name)
|
||||
resolve()
|
||||
}
|
||||
image.onerror = (e) => {
|
||||
reject(e)
|
||||
}
|
||||
image.src = img
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user