Добавить изображение в заголовке с помощью html-pdf node модуля

Я использую this для преобразования html в PDF. Конверсии действительно хороши. Но проблема заключается в том, чтобы добавить верхний и нижний колонтитулы в Страницы PDF. В параметрах, если я добавляю текст заголовка, я получил результат, который я ожидал.

//Options

    var options = {
    "header": {
        "height": "45mm",
        "contents": "<div style='text-align: center;'>Author: Marc Bachmann</div>" // If i add image in content it wont work
    // sample i tried 
      },
      "footer": {
        "height": "28mm",
        "contents": "<span style='color: #444;'>{{page}}</span>/<span>{{pages}}</span>"
      }
    }
// Tried this in contents <img src="image path" />
    var result = <div class="container"> HTML CONTENT</div>';

        pdf.create(result, options).toFile(fileName + ".pdf", function(err, res) {
        if (err) {
        console.error(err);
        callback();
        }

Затем, если я добавлю тег изображения в параметр заголовка (содержимого), я не получил изображение в сгенерированном PDF файле. Можете ли вы дать мне решение этой благодарности.

Ответ 1

Можно добавить изображение в заголовок параметров. 1. Загрузите изображение в тело html с помощью стиля "display: none". 2. Затем добавьте изображение в заголовок параметров При этом изображение кэшируется и может прикреплять изображение в заголовке.

    var options = {
    "format": 'Letter',
    "orientation": "portrait",
    "header": {
    "contents": "<img src='image path' />",
        "height": "30mm"
  },
  "footer": {
    "contents": footer
  }
}
pdf.create("<div style='display:none'><img src='image path' /></div>", options).toFile("sample.pdf", function(err, res) {
        if (err) {
                console.error(err);
                callback();
        } 
});

Ответ 2

Ссылаясь на эту проблему на github, вы не можете поместить свое изображение непосредственно в options.header, вы должны поместить его в тело внутри a <div id="pageHeader"></div>:

var pdf = require('html-pdf');
var path = require('path');

// this is very important, you have to put file:// before your path
// and normalize the resulting path
var imgSrc = 'file://' + __dirname + '/350x120.png';
imgSrc = path.normalize(imgSrc);
// or var imgSrc = path.join('file://', __dirname, '/350x120.png');

// Options
var options = {
    "header": {
      "height": "45mm",
      "contents": ""
    },
    "footer": {
      "height": "28mm",
      "contents": "<span style='color: #444;'>{{page}}</span>/<span>{{pages}}</span>"
    }
  }
// put your entire header here and the content of the page outside the <div id="pageHeader"></div>
var result = "<div id='pageHeader'><img src='" + imgSrc + "' /><div style='text-align: center;'>Author: Marc Bachmann</div></div>";
result += "<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>";
var fileName = __dirname + '/test.pdf';
pdf.create(result, options).toFile(fileName, function(err, res) {
  if (err) {
    console.error(err);
  }
});

С помощью этого кода я получаю этот pdf:

generated pdf