Сжать PDF-файл в Google Script - PullRequest
       39

Сжать PDF-файл в Google Script

3 голосов
/ 24 октября 2019

Как сжать PDF-файл в Google Script?

Я уже использую конвертапи для объединения PDF-файлов, успешно. Но я безуспешно пытаюсь сжать окончательный PDF-файл

Код OK для MERGE

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 для COMPRESS

    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 = {Файл = Relance клиентов Celtys - 24/10/2019 08: 33: 59.pdf}, muteHttpExceptions = false}]) [0,087 секунд] [19-10-24 08: 34: 44: 449 CEST] Испытание на высшем уровнеСценарий: запрос на добавление https://v2.convertapi. Код обновления: 400. Réponse tronquée du serveur: {"Код": 4000, "Сообщение": "Ошибка проверки параметра.", "InvalidParameters": {"Файл": ["Размер файла должен быть больше 0 байт.", "Поле File обязательно для заполнения ... (Utilisez l'option muteHttpExceptions для examiner la réponse entière.)"исполнение: 45,23 секунды]

1 Ответ

2 голосов
/ 24 октября 2019

Как насчет этой модификации?

Модифицированный скрипт:

От:
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
};

Ссылки:

Если я неправильно понял ваш вопрос, и это был не тот результат, который вы хотите, я приношу свои извинения.

...