我使用下面的代码片段将Google文档转换为PDF和docx格式并将其保存到GDrive。 PDF很好,但是docx在Office Word 2013中有问题,并且根本无法打开showing this message。 LibreOffice 6可以打开文件,但是只能在LibreDraw中以只读方式打开文件,不能以LibreWriter格式打开,并且文本在文本框中显示,边框为纯图像,而不是对象。
如果我在
文件>下载为..> Microsoft Word(.docx)的菜单中手动进行转换,则该文件运行良好。我有成百上千个文件,手动解决不是解决方案。
function saveToDrive(_name){
//Get document blob for converting
var blob = DocumentApp.openById('string_id').getBlob();
//Save as PDF
var pdf = {
title: _name + '.pdf',
mimeType: MimeType.PDF,
parents:[{id:'google_drive_folder'}]
};
Drive.Files.insert(pdf, blob);
//Save as docx
var docx = {
title: _name + '.docx',
mimeType: MimeType.MICROSOFT_WORD,
parents:[{id:'google_drive_folder'}]
};
Drive.Files.insert(docx, blob);
}
我也使用了字符串mime类型,结果相同。我想念什么?
答案 0 :(得分:0)
getBlob()
默认将其转换为PDF。因此,当insert
以docx
的身份放入云端硬盘时,您正试图从pdf
转换为docx
。gdoc
从Files:export
直接进行转换UrlFetchApp
function docToDocx(id) {
var format = 'docx',
exportLink =
'https://docs.google.com/document/d/' + id + '/export?format=' + format,
blob = UrlFetchApp.fetch(exportLink, {
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
},
});
DriveApp.createFile(blob);
}