Создание PDF из цвета фона HTML в PDF - PullRequest
2 голосов
/ 05 апреля 2019

Я видел несколько похожих вопросов относительно создания PDF из Blob с примерами цветного фона, но ни один из ответов не касается «проблемы с цветом фона», и я не могу получить полученный PDF, чтобы иметь какой-либо цвет фона.

Я последовал этому примеру ( Создание PDF из HTML в Google Apps Script и добавление изображений - изображения не отображаются ) и получил изображение, которое будет включено в файл PDF, но цвета фона не отображаются 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 Ответ

2 голосов
/ 05 апреля 2019

Ответ был довольно прост ... нашел это серфинг в сети и добавил ...

    html { -webkit-print-color-adjust: exact; }

Это код, который сейчас работает ...

function htmlToPDF() {

  var html = 
      "<style> html { -webkit-print-color-adjust: exact; } </style>"
      + "<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});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...