Почему этот скрипт отправляет поврежденный PDF-файл?
Я переписал свой код, чтобы соответствовал другим ответам на аналогичные проблемы, но это не устранило проблему с моим скриптом. Он отправляет электронное письмо с вложением в формате pdf, и я не получаю никаких ошибок, но я не могу открыть файл. Я пробовал несколько решений, размещенных в stackoverflow.
Что могло вызвать повреждение PDF-файла после его отправки? Я изменил структуру своего URL, но не повезло.
function emailPDF() {
SpreadsheetApp.flush();
var ss = SpreadsheetApp.openByUrl('url')
var sheet = ss.getSheetByName('Reviews Due');
var row = 2;
var col = 2;
var test = sheet.getRange(row,col).getValue();
if (test == "New Employee Reviews"){
var token = ScriptApp.getOAuthToken();
var params = {
headers: {
'Authorization': 'Bearer ' + token,
},
'muteHttpExceptions' : true
};
var sheetId = sheet.getSheetId();
var url_base = "https://docs.google.com/spreadsheets/d/" + ss.getId() + "/" + "export?";
var url_ext = 'exportFormat=pdf'
+ '&format=pdf'
+ '&gid=' + sheetId
+ '&size=letter'
+ '&portrait=false'
+ '&fitw=true'
+ '&sheetnames=false'
+ '&printtitle=false'
+ '&pagenumbers=false'
+ '&gridlines=false'
+ 'fzr=false';
var response = UrlFetchApp.fetch(url_base + url_ext, params);
var blob = response.getBlob().setName("Reviews Due" + ".pdf");
Вот URL-адрес электронной таблицы:
Вот URL-адрес, когда я экспортирую лист как pdf: file: /// C: /Users/gwaldo/Downloads/Master%20Progression%20Schedule%20-%20Reviews%20Due.pdf
Сервер не может понять запрос из-за неправильного синтаксиса.
Похоже, что синтаксис одного из параметров запроса не понят или имеет неверный формат. Простое добавление var url_ext='format=pdf' помогло изолировать проблему. После тестирования каждого из параметров OP, похоже, fzr=false вызывал проблемы, потому что раньше он отсутствовал &.