У меня в приложении AppMaker есть функция, которая работает как шарм - когда вы нажимаете на кнопку, она берет данные из текущей записи, применяет к ней некоторую логику, смешивает ее и стилизует как HTML.Я хочу доставить результаты пользователю двумя способами:
- Печать - функция имеет возврат, который отправляет HTML-код обратно в браузер, что открывает диалоговое окно печати, как и ожидалось.
- 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 в качестве единиц, и я попробовал просто использовать слово «буква».Ни одна из версий выше не работает.
Есть ли другое место, где я могу указать размер страницы, чтобы это перестало происходить?