Экспорт таблиц Google Sheets в PDF файл
В данной статье я расскажу, как можно экспортировать таблицу Google в PDF файл, в заданном формате, используя Google Script. И еще отправим PDF файл на Google диск и на почту.
UPD 14.03.2021: Скрипт обновлен. Добавлено:
- указание пути при сохранении в Google Drive. Функция myExportPDFtoGDrive перед сохранением запрашивает путь. Пример пути: "New Folder/Next Folder", папка "New Folder" находится в корне диска
- скачивание с сохранением на Google диск. При скачивании PDF файла есть сложности с изменением его названия, но при сохранении файла сначала на Google Driva и последующим скачиванием можно задать произвольное имя. Пример функция myExportPDFtoGDrive2
- прикрепление к письму нескольких файлов. Функция myExportPDFtoEMail2 экспортирует все листы в отдельные PDF файлы и отправляет всё одним письмом
- добавил определение параметров разрыва страниц. Для работы разрыва страниц в масштабе должна быть установлена шестерка (6 Выровнять по разрывам страниц)
В Google таблицах есть возможность экспорта в PDF формате. Для это нужно зайти в меню Файл->Скачать->Документ PDF. Чтобы понять, как Google делает экспорт, воспользуемся браузерными инструментами разработчика. Откроем нужную нам таблицу и нажмем сочетание клавиш Ctrl+Shift+I(браузер Оперы или Google Chrome), и перейдем на вкладку Ethernet как на картинке ниже

Теперь сделаем экспорт в PDF через меню Google таблиц и найдем ссылку, которая отвечает за это действие

Нажмем на ссылку и посмотрим параметры, которые передаются на сервер

На сервер передается идентификатор таблицы и три параметра: a, pc, gf. Для чего нужны a и gf я не знаю, а вот параметр pc – это все настройки выборки и форматирования для экспорта Google таблицы в PDF файл
Немного пришлось по ломать голову над значением 43745.64856909722, но так как я давно работаю с Delphi ответ пришел сам собой. Опытным путем я определил все необходимые настройки и вот что получилось:
На основе полученных данных можно сделать скрипт для экспорта содержимого Google таблиц в нужном нам формате. Для запуска скрипта сделаем дополнительный пункт меню в триггере onOpen.