Почему этот скрипт отправляет поврежденный 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

Когда я изменил переменную blob, чтобы включить getAs (), вот экспортированный PDF-файл: неповрежденный PDF-файл , но нет данных

Logger.log (url_base + url_ext) = https://docs.google.com/Spreadsheets/d/1wmnw9Nl6B0e8IgVDgTEtGLzWhh1ssSgCLiOMsgs6Z64/export?Format=pdf&format=163&hl=ru&letalsex&letalsex&letalsex&letalsex&letalsex&letalsex&letfalse&letalsex&letal&hl=ru&letalsex&letal&letalsex&letf&hl=ru&letalse&letal&letal&hl=enложьилиниисетки=falsefzr=ложь»отн=

%PDF-1.4%����40obj<</Type/Catalog/Names<<
/JavaScript30R>>/PageLabels<</Nums[0<</S/D/St1>>]>>
/Outlines20R/Pages10R>>endobj50obj<</Creator(��

<!DOCTYPE html><html lang="en"><head><meta name="description" content="Web 
word processing, presentations and spreadsheets"><meta name="viewport" 
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum- 
scale=1.0, user-scalable=0"><link rel="shortcut icon" 
href="//ssl.gstatic.com/docs/common/drive_favicon1.ico"><title>Page Not 
Found</title><meta name="referrer" content="origin"><link 
href="//fonts.googleapis.com/css?family=Product+Sans" rel="stylesheet" 
type="text/css"><style nonce="L3gm1PN3u9lyxQbOyJWDIQ">

person wagegaldo    schedule 01.09.2020    source источник
comment
Комментарии не подлежат расширенному обсуждению; этот разговор был перешел в чат.   -  person Samuel Liew♦    schedule 03.09.2020


Ответы (1)


400 Код состояния согласно RFC2616:

10.4.1 400 неверный запрос

Сервер не может понять запрос из-за неправильного синтаксиса.

Похоже, что синтаксис одного из параметров запроса не понят или имеет неверный формат. Простое добавление var url_ext='format=pdf' помогло изолировать проблему. После тестирования каждого из параметров OP, похоже, fzr=false вызывал проблемы, потому что раньше он отсутствовал &.

person TheMaster    schedule 02.09.2020