2013-03-08 36 views
0

我想從其他文檔生成的BLOB中創建Google Drive中的文檔。 我試過這個簡單的例子:使用應用程序腳本從BLOB創建文件

var doc = DocumentApp.openByUrl("https://docs.google.com/document/d/[My document]/edit"); 
    var docContentBlob = doc.getBlob(); 

    var newDocBlob = Utilities.newBlob(
    docContentBlob.getDataAsString(), 
    "application/vnd.google-apps.document", 
    "TEST DOC BLOB"); 

該腳本創建一個文件,但我不能打開它(它顯示「加載中,請稍候」,當我嘗試打開該文檔,它從來沒有打開。

該腳本爲什麼不工作?

+0

我不確定你在做什麼,但是(1)newBlob沒有創建一個文檔 - 是否有更多的代碼被遺漏了?(2)你爲什麼以一個blob開始創建一個新的?這是毫無意義的,你的語法也是錯誤的。 – 2013-03-08 15:53:28

回答

0

也不清楚(如科裏已經說)你正在嘗試做的,但是當你有一個blob從一個文檔來(這意味着在此背景下,谷歌文檔)你只能(至少我現在正在考慮)使用DocsList從這個blob創建一個「新」......它不會是一個Google文檔,而是一個pdf文件相反!

如果您想獲得doc的副本,只需使用docsList服務中的makeCopy即可。

下面是一段代碼來說明這兩種可能性:

function myFunction() { 
    var doc = DocumentApp.openByUrl("https://docs.google.com/document/d/[My document ID]/edit"); 
    var docContentBlob = doc.getBlob(); 
    var copyofDoc = DocsList.getFileById(doc.getId()).makeCopy('new copy of '+doc.getName());// this will create a copy (google doc format) 
    var newDocfromBlob = DocsList.createFile(docContentBlob);// this will create a pdf version of your doc 
} 
0

您需要設置文件的MIME類型,以便谷歌知道如何顯示/打開它。

相關問題