摘要:由四個部分組成前綴指示數據類型的類型如果非文本則為可選的標記數據本身將數據轉換成格式的后通過標簽導出將圖片下載成打印組件化后,需要通過插入樣式的方法保證樣式不會覆蓋
文件下載 一、調用后端接口下載
通過 window.open(url) 下載;
通過 window.location = url 下載
通過 iframe 下載
const iframe = document.createElement("iframe"); document.body.appendChild(iframe); iframe.src = url; iframe.style.display = "none";
通過點擊鏈接下載
function download(fileName, url) { if (!fileName) return; console.log(url); const link = document.createElement("a"); const evt = document.createEvent("MouseEvents"); link.href = url; link.setAttribute("download", fileName); evt.initEvent("click"); link.dispatchEvent(evt); }二、前端直接下載到本地
將數據轉換成 Data URLs 后通過a標簽導出(以)。
(Data URLs 由四個部分組成:前綴(data:)、指示數據類型的MIME類型、如果非文本則為可選的base64標記、數據本身:)
data:[][;base64],
const data = resolveDate(this.data, this.headersMapping); download("test.csv", `data:"attachment/csv",ufeff${encodeURIComponent(data)}`); // data:"attachment/csv",?%E5%A7%93%E5%90%8D%2C%E5%B9%B4%E9%BE%84%2C%E7%94%B5%E8%AF%9D%0D%0A%E5%BC%A0%E4%B8%89%2C21%2C13122223839%0D%0A%E6%9D%8E%E5%9B%9B%2C13%2C13198739339%0D%0A%E7%8E%8B%E4%BA%94%2C23%2C13198340239%0D%0A%E6%9D%8E%E9%9B%B7%2C42%2C13198783839%0D%0A%E5%BC%A0%E6%A2%85%E6%A2%85%2C5%2C13198783839%0D%0A%E5%B0%8F%E6%98%8E%2C22%2C13139083839%0D%0A%E5%B0%8F%E7%BA%A2%2C13%2C13198783839%0D%0A%E5%B0%8F%E7%BB%BF%2C11%2C13198783839
將數據轉換成 blob 格式的 url 后通過 a 標簽導出
const data = resolveDate(this.data, this.headersMapping); const url = window.URL.createObjectURL(new window.Blob([`ufeff${data}`])); // blob:http://localhost:8081/9b0d2867-ada2-4db1-b090-d0e8d44e0ae0 downloadFile("test.csv", url);
將 canvas 圖片下載成 png
const imageData = this.canvas.toDataURL(); // data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAANmklEQVR4Xu2dB6w9RRXGP4zBBhor9hoQCwh2I3axiwV7FzH2XgB7QQQbViwk2BWDDey9VxALVoxEgwr2QgKKGs2P/2zcXO67d3dnz5nZveckN+8ld+bMzLff3Z09bbZTSCBggMB2BjpDZSCgIFaQwASBIJ...QkTBIJYJrCG0iBWcMAEgSCWCayhNIgVHDBBIIhlAmsoDWIFB0wQCGKZwBpKg1jBARMEglgmsIbSIFZwwASBIJYJrKE0iBUcMEEgiGUCaygNYgUHTBAIYpnAGkqDWMEBEwSCWCawhtIgVnDABIEglgmsoTSIFRwwQSCIZQJrKA1iBQdMEAhimcAaSv8H1TBWtQk/HwUAAAAASUVORK5CYII= downloadFile("test.jpg", imageData);
const imageData = this.canvas.toDataURL().replace("image/png","image/octet-stream"); // data:image/octetstream;base64,JrKE0iBUcM...ygNYgUHTBnDABIEd3dnz5nZveckN+8ld+bMzLff3Z09bbZTSCBggMB2BjpDZSCgIFaQwASBIJ...QkTBIJYJrCG0iBWcMAEgSCWCayhNIgVHDBBIIhlAmsoDWIFB0wQCGKZwBpKg1jBARMEglgmsIbSIFZwwASBIJYJrKE0iBUcMEEgiGUCaygNYgUHTBAIYpnAGkqDWMEBEwSCWCawhtIgVnDABIEglgmsoTSIFRwwQSCIZQJrKA1iBQglgmsoTSIFRwwQSCIZQJmcAaSv8H1TBWtQk/HwUAAAAASUVORK5CYII= downloadFile("test2.png", imageData);打印
...
.print { page-break-after: always; } @page { margin: 0; }
組件化后,需要通過插入 page 樣式的方法保證樣式不會覆蓋
const el = document.createElement("style"); el.type = "text/css"; el.appendChild(document.createTextNode("@page { margin: 0mm; size: 80mm 160mm; }")); document.head.appendChild(el);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/105655.html
摘要:打印正在改變產品設計測試和制造的方式,而基于云計算的軟件也正在幫助打印實現它的潛力。在云計算的幫助下,任何能連上互聯網的人可以創造調整存儲和流設計,并將二者發送到世界上任何地方的打印機上。 3D打印正在改變產品設計、測試和制造的方式,而基于云計算的軟件也正在幫助3D打印實現它的潛力。在云計算的幫助下,任何能連上互聯網的人可以創造、調整存儲和流設計,并將二者發送到世界上任何地方的3D打印機上...
摘要:打印正在改變產品設計測試和制造的方式,而基于云計算的軟件也正在幫助打印實現它的潛力。例如,一直在用基于云計算的軟件來為客戶定制化制造一款名為的產品。今年月,另外一家主要的打印公司宣布他們將追求一種新的基于云計算的軟件策略。 3D打印正在改變產品設計、測試和制造的方式,而基于云計算的軟件也正在幫助3D打印實現它的潛力。在云計算的幫助下,任何能連上互聯網的人可以創造、調整存儲和流設計,并將二者...
摘要:如何根據地址和子網掩碼算出可以連接的主機數,是類地址,默認子網掩碼為即。所以,位于子網由劃分出來的第一個子網,子網號,主機地址范圍,定向廣播地址。如何根據IP地址和子網掩碼,算出可以連接的主機數?128<172<191,172.16.1.12是B類地址,默認子網掩碼為/16 (即255.255.0.0)。將原來的B類網絡號進行子網劃分后,子網掩碼變為/20,即網絡位(16位)向主機位(16位...
摘要:確認一切按預期運行。表明發生了一些意外,或者不久的將來會發生問題如磁盤滿了。由于更嚴重的問題,軟件已不能執行一些功能了。嚴重錯誤,表明軟件已不能繼續運行了。對于不能獲取的名稱,則記錄到模塊。 最近在寫一些python腳本,總是使用print來打印信息感覺很low,所以抽空研究了一下python的logging庫,來優雅的來打印和記錄日志: 一、簡單的將日志打印到屏幕: import l...
閱讀 2760·2021-10-26 09:50
閱讀 2405·2021-10-11 11:08
閱讀 2140·2019-08-30 15:53
閱讀 1916·2019-08-30 15:44
閱讀 2391·2019-08-28 18:12
閱讀 2534·2019-08-26 13:59
閱讀 2862·2019-08-26 12:19
閱讀 2763·2019-08-26 12:09