瀏覽代碼

导出PDF图片及文件名称

natasha 1 周之前
父節點
當前提交
1c235d0992
共有 1 個文件被更改,包括 27 次插入4 次删除
  1. 27 4
      src/views/bookShelf/components/PrintModel.vue

+ 27 - 4
src/views/bookShelf/components/PrintModel.vue

@@ -525,7 +525,10 @@
         </p>
         <div class="item-page" style="padding: 0 24px">
           <el-button @click="goBack" size="small">取消</el-button>
-          <el-button type="primary" @click="generatePDF" size="small"
+          <el-button
+            type="primary"
+            @click="generatePDF(articleInfo.art_title)"
+            size="small"
             >下载</el-button
           >
           <el-button type="primary" @click="handlePrint" size="small"
@@ -1362,7 +1365,7 @@ export default {
       });
     },
     // 下载pdf
-    async generatePDF() {
+    async generatePDF(title) {
       let MethodName =
         "/ShopServer/Client/PrintRecordManager/GetMyPrintCount_Article";
       getLogin(MethodName, {
@@ -1388,7 +1391,7 @@ export default {
               const opt = {
                 margin: [0, 0, 0, 0],
                 useCORS: true,
-                filename: "二十一世纪英语智慧阅读平台.pdf",
+                filename: title + ".pdf",
                 image: { type: "jpeg", quality: 0.98 },
                 html2canvas: { scale: 2 }, // 或其他自定义设置,例如scale可以放大内容以便更容易阅读和打印。
                 jsPDF: { unit: "mm", format: "a4", orientation: "portrait" }, // A4尺寸的PDF,纵向打印。
@@ -1799,7 +1802,27 @@ export default {
         item.height =
           item.width === "870px" ? "" : event.target.naturalHeight + "px";
       }
-      this.$forceUpdate();
+      // item.src = this.getBase64Image(
+      //   "http://cms-bucket.ws.126.net/2021/0114/003bc5dej00qmxg5o0089c000s600e3c.jpg"
+      // );
+      this.getBase64Image(item);
+    },
+    getBase64Image(item) {
+      var image = new Image();
+      image.src = item.src + "?v=" + Math.random(); // 处理缓存
+      image.crossOrigin = "*"; // 支持跨域图片
+      image.onload = () => {
+        var canvas = document.createElement("canvas");
+        canvas.width = image.width;
+        canvas.height = image.height;
+        var context = canvas.getContext("2d");
+        context.drawImage(image, 0, 0, image.width, image.height);
+        var quality = 0.8;
+        let dataurl = canvas.toDataURL("image/jpeg", quality);
+        // this.url = dataurl;
+        item.src = dataurl;
+        this.$forceUpdate();
+      };
     },
   },
   mounted() {