如何在 Google 脚本中压缩 pdf 文件?
我已经成功地使用 convertapi 合并 pdf 文件。 但是我尝试,不成功,压缩了最终的pdf文件
合并代码OK
var file = DriveApp.getFileById(idPDF1);
formData['Files[' + index + ']'] = file.getBlob();
index++;
var options = {
'method' : 'post',
'payload' : formData,
'muteHttpExceptions': true
};
var global_pdf_name = nom_fichier + " - " + dateJour + ".pdf";
var response_glob = UrlFetchApp.fetch('https://v2.convertapi.com/pdf/to/merge?Secret=XXXXXXXXXX', options);
if(response_glob.getResponseCode() == 200) {
var contentText = JSON.parse(response_glob.getContentText());
var blob_glob = Utilities.base64Decode(contentText.Files[0].FileData);
var link_fact = destination.createFile(Utilities.newBlob(blob_glob, 'application/pdf', global_pdf_name));
//压缩代码 NOK
var formDataC = {};
var fileC = DriveApp.getFileById(id_mergepdf);
formDataC['File'] = fileC;
var options = {
'method' : 'post',
'data' : formDataC,
'muteHttpExceptions': false,
'processData': false
};
var global_pdf_compresse = nom_fichier + " - " + dateJour + ".pdf";
var response_globC = UrlFetchApp.fetch('https://v2.convertapi.com/convert/pdf/to/compress?Secret=XXXXXX', options);
if(response_globC.getResponseCode() == 200) {
var contentTextC = JSON.parse(response_globC.getContentText());
var blob_globC = Utilities.base64Decode(contentTextC.Files[0].FileData);
var link_factC = destination.createFile(Utilities.newBlob(blob_globC, 'application/pdf', global_pdf_compresse));
//跟踪中的错误信息
[19-10-24 08:34:44:348 CEST] UrlFetchApp.fetch([https://v2.convertapi.com/convert/pdf/to/compress?Secret=XXXXXXX, {processData=false, method=post, data={File=Relance clients Celtys - 24/10/2019 08:33:59.pdf}, muteHttpExceptions=false}]) [0,087 secondes] [19-10-24 08:34:44:449 CEST] Échec de l'exécution du script : Échec de la requête pour https://v2.convertapi. Code renvoyé : 400. Réponse tronquée du serveur : {"Code":4000,"Message":"Parameter validation error.","InvalidParameters":{"File":["File size must be greater than 0 bytes.","The File field is requ... (Utilisez l'option muteHttpExceptions pour examiner la réponse entière.) (ligne 113, fichier "Code") [durée totale d'exécution : 45,23 secondes]
最佳答案
这个修改怎么样?
修改后的脚本:
从:var fileC = DriveApp.getFileById(id_mergepdf);
formDataC['File'] = fileC;
var options = {
'method' : 'post',
'data' : formDataC,
'muteHttpExceptions': false,
'processData': false
};
到:
var fileC = DriveApp.getFileById(id_mergepdf).getBlob(); // Modified
formDataC['File'] = fileC;
var options = {
'method' : 'post',
'payload' : formDataC, // Modified
};
引用资料:
- Class UrlFetchApp
- PDF to COMPRESS API
- Convert a gdoc into image
- 此线程还使用 ConvertAPI。因此,此示例脚本可能对您有用。
如果我误解了您的问题并且这不是您想要的结果,我深表歉意。
关于google-apps-script - 在 Google Script 中压缩 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58535537/