Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Docs应用程序脚本-将文件base64数据作为doc/docx文件获取_Javascript_Google Apps Script_Google Docs - Fatal编程技术网

Javascript Google Docs应用程序脚本-将文件base64数据作为doc/docx文件获取

Javascript Google Docs应用程序脚本-将文件base64数据作为doc/docx文件获取,javascript,google-apps-script,google-docs,Javascript,Google Apps Script,Google Docs,如何获取doc/docx格式的活动文档文件数据? 我可以得到PDF格式的内容,没有任何问题。 我尝试了下面的应用程序脚本代码,但它没有返回doc/docx格式的base64字符串 var doc = DocumentApp.getActiveDocument(); function doPostRequest(){ var newblob = doc.getBlob(); newblob.setContentType("application/msword"

如何获取doc/docx格式的活动文档文件数据? 我可以得到PDF格式的内容,没有任何问题。 我尝试了下面的应用程序脚本代码,但它没有返回doc/docx格式的base64字符串

var doc = DocumentApp.getActiveDocument();

function doPostRequest(){
  
  var newblob = doc.getBlob();  
  newblob.setContentType("application/msword");
  newblob.setName("sample.doc");
  
  var dataObj = {
    date : new Date(),
    subject : "sample file data",
    comment : "this is a test comment",
    attachment : newblob
  }; 

  var options = {
    method : 'POST',
    payload: dataObj
  };
  
  var response = UrlFetchApp.fetch('https://postman-echo.com/post', options);
  console.log(response.getContentText());
  return response.getContentText();
}
输出

尽管上面写着“sample.doc”,但当我从base64字符串复制粘贴并生成一个文件(使用C#)时,它以PDF文件的形式打开


如何将文件数据转换为doc/docx格式,并将文件数据保存为doc/docx文件?

它不是被称为“sample.doc”吗,因为您调用
newblob.setName(“sample.doc”)?我想象
newblob.setName(“sample.flyingspaghettimonster”)
将返回一个名为“sample.flyingspaghettimonster”的文件。我不熟悉API,但声明:“设置此blob中字节的内容类型”,但没有提及任何转换。当使用
getBlob()
直接从Google文档检索blob时,模拟类型将自动更改为
application/pdf
。这似乎是当前的规范。因此,在本例中,需要将Google文档导出为DOCX格式。关于这一点,这些线程可能很有用。其中有这样的语句:“将此对象中的数据作为转换为指定内容类型的blob返回。”但也有这样的语句:“对于大多数blob,application/pdf是唯一有效的选项。”因此我不确定这是否适用于您的情况。我试过-getAs(“docx mime type”)和Utilities.neBlob(blob.getBytes(),“docx mime type”);功能也一样。生成所有文件后,所有文件都变成PDF格式。那么,目前是否无法转换为docx?