Создать PDF из HTML и установить размер страницы и поля - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь создать PDF-файл со страницы HTML с помощью google-apps-script и установить размер страницы " Letter ", а не " A4 " (8,26 X 11,69).Я проверил много связанных постов и выяснил, какие цвета фона, изображения и т. Д ... Связанные Создание PDF из цвета фона HTML в PDF , но я не могу внести какие-либо изменения на страницу размер .

function htmlToPDF() {

  var html = "<h1>Hello world</h1>"
       + "<p>This is just a paragraph"
       + "<p style='color:red;'>I am red</p>"
       + "<p style='color:blue;'>I am blue</p>"
       + "<p style='font-size:50px;'>I am big</p>"
       + "<table style='border-collapse: collapse; width: 698px; height: 115px; background-color: #C5D9F1;' border='0' cellpadding='10'>"
       + "<tbody>"
       + "<tr>"
       + "<td style='padding: 5px;background-color:powderblue;' nowrap='nowrap'><strong>Bold with background-color:</strong></td>"
       + "</tr>"
       + "</tbody>"
       + "</table>";

  var blob = Utilities.newBlob(html, "text/html", "text.html");
  var pdf = blob.getAs("application/pdf");

  DriveApp.createFile(pdf).setName("text.pdf");

  MailApp.sendEmail("[your email here ]", "PDF File", "", 
     {htmlBody: html, attachments: pdf});
}

Я пробовал несколько подходов для установки размера

1) Добавление следующего приводит к нулю

<style> @page { margin: 0; }

, но добавлениеШирина и высота, как показано ниже, ничего не делает.

@page { margin: 0; width: 216mm; height: 279mm }

и / или

@media print { margin: 0; width: 600px; height: 800px }

2) Я даже пытался настроить ширину и высоту при создании HTML-вывода следующим образом

  var h = HtmlService.createHtmlOutput(myHTML);
  h.setWidth(2550);
  h.setHeight(3300);

Спасибо ...

1 Ответ

1 голос
/ 10 апреля 2019

Как написано в документации ,

Вы не можете изменить все свойства CSS с помощью @page.Вы можете изменить только поля, сироты, вдовы и разрывы страниц документа.Попытки изменить любые другие свойства CSS будут игнорироваться.

Однако вы можете использовать очень экспериментальное свойство size:

<style>
@page  {
  margin: 0;
  size: letter; /*or width x height 150mm 50mm*/
}
</style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...