Как я могу установить размер страницы для PDF, созданного (из HTML) и отправленного по электронной почте с помощью AppMaker? - PullRequest
1 голос
/ 14 июня 2019

У меня в приложении AppMaker есть функция, которая работает как шарм - когда вы нажимаете на кнопку, она берет данные из текущей записи, применяет к ней некоторую логику, смешивает ее и стилизует как HTML.Я хочу доставить результаты пользователю двумя способами:

  1. Печать - функция имеет возврат, который отправляет HTML-код обратно в браузер, что открывает диалоговое окно печати, как и ожидалось.
  2. PDF по электронной почте - функция также создает PDF-файл, который прикрепляется к электронному письму, отправляемому пользователю.

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

  • Чтобы отправить PDF-файл в виде вложения электронной почты, я использую Utilities.newBlob(), чтобы сначала блобизировать мой HTML.Затем я получаю блоб в виде PDF, а затем отправляю PDF как вложение в электронное письмо.Код выглядит следующим образом:
var pdfContent = Utilities.newBlob(html, 'text/html', 'PE-' + name + '.html')
var pdf = pdfContent.getAs("application/pdf");
GmailApp.sendEmail(to, subject, body, {attachments: pdf});

Письмо доставляется правильно с прикрепленным к нему PDF-файлом, и когда вы его открываете, оно выглядит почти как HTML, отправляемый на печать.диалог.Когда вы собираетесь распечатать его, последние строки явно обрезаются.Мой совет пользователям (пока я не мог разобраться в проблеме) состоял в том, чтобы использовать функцию «По размеру страницы» в диалоговом окне печати.При более внимательном рассмотрении у меня возникло предположение, что это может быть проблема с размером страницы - что-то не так с пропорциями при просмотре PDF.Конечно, после изменения формата бумаги с буквы на A4 в диалоговом окне печати страница выглядит идеально.

Так что теперь я не могу понять, где происходит значение по умолчанию для A4.

  • Я попытался установить атрибут @page для размера в теге <style>, но безрезультатно - похоже, он не переживает переход от HTML к BLOB-объекту в PDF:
html += '<style>@page {size: 215.9mm 279.4mm; margin: 15mm;}</style> etc...';

Для размера я использовал миллиметры (как указано выше) и px в качестве единиц, и я попробовал просто использовать слово «буква».Ни одна из версий выше не работает.

Есть ли другое место, где я могу указать размер страницы, чтобы это перестало происходить?

...