2016-03-29 68 views
0

我正试图跟进此处的讨论:Zip drive filesgetBlob()正在将文件转换为pdf

如果您执行以下代码,您会看到由于某种原因,它会生成PDF文件。看来getBlob()将它们转换为PDF。

var folderId = DriveApp.getFoldersByName("Test").getId(); 
    var files = DriveApp.getFoldersByName("Test").getFiles(); 
    var blobs = []; 
    var fileBlob = ''; 
    var file = ''; 
    while(files.hasNext()){ 
    file = files.next(); 
    fileBlob = file.getBlob(); 
    blobs.push(fileBlob); 
    } 

    var zippedFolder = Utilities.zip(blobs, 'Test.zip'); 
    DriveApp.getFoldersByName("Test").getParents().next().createFile(zippedFolder); 

我下载了Test.zip,并且每个文件(如谷歌表格或谷歌文档)都被转换成了PDF格式。其次,如果文件夹包含任何Google表单文件,则代码失败,并显示错误,表示无法将表单转换为pdf。

我不想将任何文件转换为pdf。我只想压缩文件夹。有什么想法吗?

回答

0

这是您从Google应用程序文件创建blob时的预期行为,但您找到的表单除外。如果不先将其转换为其他格式,则无法压缩本地文档或工作表。

+0

谢谢。它虽然很糟糕。本地文档文件可以单独下载并在本地计算机上压缩并上载回驱动器。我不明白为什么这不能在驱动器内自动执行。 –

+0

希望这可以帮助 - 如果我对[Blob](https://developers.google.com/apps-script/reference/base/blob#getascontenttype)类的理解是正确的,那么文件看起来就像PDF一样“默认” 。您可以在调用'getAs'方法时指定其他MIME类型,并在该数组中使用该BLOB。 – adjuremods