2016-03-29 12 views
0

Ich versuche, die Diskussion hier zu verfolgen: Zip drive files.getBlob() konvertiert Dateien in pdf

Wenn Sie den folgenden Code ausführen, werden Sie feststellen, dass aus irgendeinem Grund PDF-Dateien erstellt werden. Es scheint, dass getBlob() sie in PDF konvertiert.

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

ich herunterladen Test.zip und jede Datei, dass (wie ein Google-Blätter oder Google Text & Tabellen) Datei in ein PDF umgewandelt wurde. Zweitens, wenn der Ordner eine Google Forms-Datei enthält, schlägt der Code mit einem Fehler fehl, der besagt, dass Formulare nicht in PDF konvertiert werden können.

Ich möchte keine Datei in PDF konvertieren. Ich möchte nur den Ordner zippen. Irgendwelche Gedanken?

Antwort

0

Dies ist das erwartete Verhalten beim Erstellen eines Blobs aus einer Google Apps-Datei mit Ausnahme von Formularen, die Sie gefunden haben. Es gibt keine Möglichkeit, ein natives Doc oder Sheet zu komprimieren, ohne es zuerst in ein anderes Format zu konvertieren.

+0

Danke. Es ist aber nervig. Die nativen Docs-Dateien können einzeln heruntergeladen und lokal auf dem Computer gezippt und wieder in das Laufwerk hochgeladen werden. Ich sehe nicht, warum dies nicht innerhalb der Festplatte automatisiert werden konnte. –

+0

Ich hoffe, dies könnte helfen - Es sieht so aus, als wären Dateien als PDF-Dateien "voreingestellt", wenn meine Meinung zur Klasse [Blob] (https://developers.google.com/apps-script/reference/base/blob#getascontenttype) korrekt ist . Sie können andere MIME-Typen angeben, wenn Sie die Methode 'getAs' aufrufen und dieses Blob stattdessen in Ihrem Array verwenden. – adjuremods