【问题标题】:Compress PDF file in Google Script在 Google Script 中压缩 PDF 文件
【发布时间】:2019-10-24 06:41:40
【问题描述】:

如何在 Google Script 中压缩 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 秒] [19-10-24 08:34:44:449 CEST] Échec de l'execution du script : Échec de la requête pour https://v2.convertapi。代码 renvoyé:400。响应 tronquée du serverur:{"Code":4000,"Message":"参数验证 error.","InvalidParameters":{"File":["文件大小必须大于0 bytes.","File 字段是 requ... (Utilisez l'option muteHttpExceptions 倾倒审查员 la réponse entière.) (ligne 113, fichier "Code") [执行时间:45,23 秒]

【问题讨论】:

  • 您现在需要撤销您的 convertapi 令牌,您已在原始问题中发布了它们。
  • DriveApp.getFileById(id_mergepdf) 结果是URL还是文件数据?

标签: google-apps-script convertapi


【解决方案1】:

这个修改怎么样?

修改脚本:

从:
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
};

参考资料:

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

【讨论】:

    猜你喜欢
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    相关资源
    最近更新 更多