|
|
@@ -295,26 +295,38 @@ export default {
|
|
|
}).then((canvas) => {
|
|
|
const contentWidth = canvas.width
|
|
|
const contentHeight = canvas.height
|
|
|
- const pageHeight = (contentWidth / 592.28) * 841.89
|
|
|
- let leftHeight = contentHeight
|
|
|
- let position = 0
|
|
|
- const imgWidth = 595.28
|
|
|
- const imgHeight = (592.28 / contentWidth) * contentHeight
|
|
|
+
|
|
|
+ // ========== 自适应长页面(无分页) ==========
|
|
|
+ // 使用canvas原始尺寸作为PDF尺寸
|
|
|
+ const imgWidth = contentWidth
|
|
|
+ const imgHeight = contentHeight
|
|
|
const pageData = canvas.toDataURL('image/jpeg', 1.0)
|
|
|
- const PDF = new JsPDF('', 'pt', 'a4')
|
|
|
- if (leftHeight < pageHeight) {
|
|
|
- PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
|
|
|
- } else {
|
|
|
- while (leftHeight > 0) {
|
|
|
- PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
|
|
|
- leftHeight -= pageHeight
|
|
|
- position -= 841.89
|
|
|
- if (leftHeight > 0) {
|
|
|
- PDF.addPage()
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ // 创建与canvas相同尺寸的PDF,无压缩,无分页
|
|
|
+ const PDF = new JsPDF('p', 'pt', [imgWidth, imgHeight])
|
|
|
+ PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
|
|
|
PDF.save(title + '.pdf')
|
|
|
+
|
|
|
+ // ========== 原有逻辑:A4分页(备用、勿删!!) ==========
|
|
|
+ // const pageHeight = (contentWidth / 592.28) * 841.89
|
|
|
+ // let leftHeight = contentHeight
|
|
|
+ // let position = 0
|
|
|
+ // const imgWidth = 595.28
|
|
|
+ // const imgHeight = (592.28 / contentWidth) * contentHeight
|
|
|
+ // const pageData = canvas.toDataURL('image/jpeg', 1.0)
|
|
|
+ // const PDF = new JsPDF('', 'pt', 'a4')
|
|
|
+ // if (leftHeight < pageHeight) {
|
|
|
+ // PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
|
|
|
+ // } else {
|
|
|
+ // while (leftHeight > 0) {
|
|
|
+ // PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
|
|
|
+ // leftHeight -= pageHeight
|
|
|
+ // position -= 841.89
|
|
|
+ // if (leftHeight > 0) {
|
|
|
+ // PDF.addPage()
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // PDF.save(title + '.pdf')
|
|
|
}).finally(() => {
|
|
|
// 恢复显示标题和导出按钮
|
|
|
headerElement.style.display = originalDisplay
|