2016-01-27 79 views
3

我們使用Google雲端硬盤,文檔等。使用應用腳本將HTML呈現爲Google文檔?

問題的背景:我們的部門之一需要打印數百封電子郵件,並附帶網頁信息。我們目前有一個Google Web應用程序,它接受gmail線程的內容,將消息保存爲HTML blob,然後將這些消息以PDF格式導出到文件夾。然後,我們的用戶將這些PDF下載到硬盤驅動器中,並進行批量打印。

問題本身:我們的用戶在打印時需要在這些PDF上提供頁面信息。爲此,我們首先將應用保存電子郵件作爲Google文檔,將頁腳添加相關信息,然後再轉換爲PDF。但是,我們正在嘗試的是不工作,現在我們只是在牆上扔東西,看看會發生什麼。

這就是我們目前的工作(allMessages是包含電子郵件線程的HTML內容的字符串)

//save the HTML content to a PDF file. 
var htmlBodyFile = myFolder.createFile("fileName.html", allMessages, "text/html"); 
var pdfBlob = htmlBodyFile.getAs("application/pdf"); 

我們嘗試了這一點(失敗):

//save the HTML content to a Google Doc. getAs() needs the MimeType. 

var htmlBodyFile = myFolder.createFile("fileName.html", allMessages, "text/html"); 
var myDoc = htmlBodyFile.getAs("GOOGLE_DOCS"); 
// application/GOOGLE_DOCS, and application/vnd.google-apps.document don't work either 

我注意到我可以使用用戶界面來右鍵單擊雲端硬盤中的HTML文件並使用文檔打開。它會創建一個新的Google Doc並正確呈現HTML。當我試圖腳本它(失敗),

var htmlBodyFile = myFolder.createFile("filename.html", allMessages, "text/html"); 
var myDoc = DocumentApp.openById(htmlBodyFile.getId()); 

它給我「找不到文件(可能已被刪除?)」

下面創建一個文檔,但實際上並沒有呈現HTML。

var myDoc = DocumentApp.create("docname"); 
var myBody = myDoc.getBody(); 
myBody.setText(allMessages); 
myDoc.saveAndClose(); 

現在我想出來的想法。

我們試圖調查涉及Adobe的其他解決方案。不幸的是,Acrobat很昂貴,並以隨機順序打印文檔(並且不允許命令行打印,所以我們可以編寫腳本)。而Reader沒有能力添加我們需要的頁面信息。因此,在保存到Google雲端硬盤時,我們唯一的選擇是在此處插入此信息。

有誰知道如何使用應用程序腳本呈現HTML到Google Doc?

+0

你真的需要html步驟嗎?爲什麼不把文本添加到文檔然後將其轉換爲pdf。 – SpiderPig

+0

我們需要保持電子郵件完好無損,包括任何內嵌圖像。電子郵件本身也轉換爲html。如果我們可以在不丟失任何東西的情況下直接查看文檔,那麼值得一試。 –

+0

在這個線程http://stackoverflow.com/questions/14663852/get-google-document-as-html有人發佈了一些代碼將文檔轉換爲html。因此,您可以創建僅包含頁腳的文檔,並將其轉換爲html,然後將其與郵件中的html結合使用。或者,您可以直接爲頁腳創建html代碼。 – SpiderPig

回答

1

我有一個解決方案。 這行代碼會將任何文件轉換爲適當的Google文檔。例如如果它是一個CSV文件,它會變成一個電子表格,如果它是HTML,它將被轉換爲谷歌文檔。

var newFileId = Drive.Files.copy({title: newFileName}, oldFileId, {convert: true}).id; 

或者,您可以將包含html的blob直接轉換爲文檔。

var newFileId = Drive.Files.insert({title: newFileName}, blob, {convert: true}).id; 

對於這個工作,你首先必須打開高級驅動API作爲解釋here

整個先進的驅動API解釋here但文檔的API讓你擁有的REST版本以某種方式找出如何使用「如何確定方法簽名」下的this網站以及示例here中的說明將其翻譯爲應用程序腳本。應用程序腳本編輯器中的自動完成功能對此也有幫助。

相關問題