因為對於原先的需求有了其他解決方案,沒空之下也就不再繼續研究這個議題了,整理一下之前的紀錄,以備日後自己查考(但很可能實際最後不管用)。內容不完整而且可能有錯誤,我自己也不曉得在寫什麼,請無意間進入閱讀的人小心喔。
在 Google Apps Script 端:
1. 從 Google Drive 取得 File 物件。
2. 用 DriveApp.File.getAs(contentType) 把檔案轉成 blob 物件。
3. 用 Blob.getBytes() 把 blob 轉成位元陣列(byte[])。
4. 用 Utilities.base64Encode(data) 把 Byte[] 轉成 Base 64 編碼的字串。
5. 回傳給用戶端的瀏覽器。
在用戶端瀏覽器開啟的網頁,由 JavaScript 接收 blob 物件,再由使用者選定存檔位置。
這篇文章試圖把檔案製作成 blob,以當作 GAS 的 doGet() 函式的 return 值,回傳給使用者的瀏覽器:
Serve PDF file as blob in Google Apps Script - Stack Overflow
這篇則試圖把伺服器傳來的 blob 物件,還原成 PDF 格式並存檔:
internet explorer - Save base64 string as PDF at client side with JavaScript - Stack Overflow
這個則使用比較新的程式寫法,也簡潔得多,但只處理到用戶端瀏覽器接收並轉為 blob :
Creating a Blob from a base64 string in JavaScript - Stack Overflow
這篇用的技術比較舊,但過程解釋的比較清楚:
HTML5筆記–Object URL-黑暗執行緒
在 DriveApp.File.getAs(contentType) 的官方說明中有提到,對大多數的 blob 而言,將 contentType 指定為 'application/pdf' 是唯一合法的選項。但我還是想試試不同類型,MDN整理了一份常見 MIME type 清單,並提及所有非純文字的檔案都可以使用 application/octet-stream 這個 MIME 類型。
訂閱:
張貼留言 (Atom)
MJML完整語法說明
MJML 是一套由電子報服務商MailJet貢獻出來的開源框架,能用簡單的語法輕鬆撰寫響應式(RWD)的電子郵件內容,再透過免費開源的 轉檔程式 或 線上編輯器 ,產生最終的標準HTML程式碼。 上一篇 稍微針對其版面布局結構做了一點簡介,這篇就完整照著官網技術文件的內容(2...
-
MJML 是一套由電子報服務商MailJet貢獻出來的開源框架,能用簡單的語法輕鬆撰寫響應式(RWD)的電子郵件內容,再透過免費開源的 轉檔程式 或 線上編輯器 ,產生最終的標準HTML程式碼。 上一篇 稍微針對其版面布局結構做了一點簡介,這篇就完整照著官網技術文件的內容(2...
-
MJML 郵件設計語言框架 本文來源: MJML Documents (我動手翻譯了語法部分,請參考 這篇 ,結果差不多等於把文件全部翻完了XD) MJML是一種用來編寫響應式電子郵件程式碼的標記語言(markup language),由開源的轉譯引擎來把撰寫好的程式碼...
-
因為對於原先的需求有了其他解決方案,沒空之下也就不再繼續研究這個議題了,整理一下之前的紀錄,以備日後自己查考(但很可能實際最後不管用)。內容不完整而且可能有錯誤,我自己也不曉得在寫什麼,請無意間進入閱讀的人小心喔。 在 Google Apps Script 端: 1. 從 ...
沒有留言:
張貼留言