0

別のドキュメントから生成された BLOB から Google ドライブにドキュメントを作成したいと考えています。私はこの簡単な例を試しました:

  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");

このスクリプトはドキュメントを作成しますが、開くことができません (ドキュメントを開こうとすると「読み込み中です。しばらくお待ちください」と表示され、開かれません。

このスクリプトが機能しないのはなぜですか?

4

2 に答える 2

0

どちらも(Coreyがすでに言ったように)何をしようとしているのかわかりませんが、ドキュメント(このコンテキストではGoogleドキュメントを意味します)からブロブが発生している場合は、DocsListを使用することしかできません(少なくとも今考えていることです)。そのblobから「新しい」ものを作成するために...そしてそれはGoogleドキュメントではなく、代わりにpdfファイルになります!

ドキュメントのコピーを取得する場合は、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
}
于 2013-03-08T17:31:13.237 に答える
0

Google がファイルを表示/開く方法を認識できるように、ファイルの MIME タイプを設定する必要があります。

于 2014-01-15T14:07:57.603 に答える