ソースを参照

6653 【验收整改】性能验证-导出PDF效果修改

ZhuJiaHao 5 ヶ月 前
コミット
a92afddd41
1 ファイル変更30 行追加18 行削除
  1. 30 18
      src/views/business/performance/experimentalView.vue

+ 30 - 18
src/views/business/performance/experimentalView.vue

@@ -395,26 +395,38 @@ export default {
       }).then(function (canvas) {
         const contentWidth = canvas.width
         const contentHeight = canvas.height
-        const pageHeight = (contentWidth / 592.28) * 841.89
-        var leftHeight = contentHeight
-        var 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
+        // var leftHeight = contentHeight
+        // var 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')
       })
     },
     loadData() {