Мне нужно уметь отображать html-представления (ничего нового там) и предоставлять конечным пользователям те же представления, что и PDF-файл.Sails EJS-view после использования html-pdf не отображает изображение
Первый случай отлично работает на моей стороне: мне удалось отобразить простой документ html5, а также изображение два раза (версия base64 + стандартный путь).
К сожалению, когда я пытаюсь преобразовать его в файл PDF благодаря html5-to-pdf
или html-pdf
, версия без base64 из <img>
тега не работает и сигнализируют как недостающее ресурса внутри файла PDF.
код я использую следующее:
Контроллер:
//res is the response parameter provided to the controller
var pdf = require('html-pdf');
var variables = {
};
ejs.renderFile('./views/samplepdf.ejs', variables, function(err, result) {
// render on success
if (result) {
html = result;
pdf.create(html).toStream(function(err, stream){
res.contentType("application/pdf");
stream.pipe(res);
});
}
// render or error
else {
res.end('An error occurred');
console.log(err);
}
});
Вид:
<h2>Image</h2>
<img class="smaller" src="data:image/jpeg;base64,/validbase64ButIHadToSaveBecauseCharactersLimitExceeded" alt="Sample image" />
<img class="smaller" src="images/ymca.jpg" alt="Sample image #2" />
Я внимательно прочитал спецификацию Sails о задачах хрюкать и управление активами , поэтому данный images/ymca.jpg
существует и может быть доступен из браузера. Я до сих пор не знаю, почему PDF не делает это.
Прошу прощения за опоздание, но ваш ответ решил мою проблему :) Большое спасибо! Придется немного адаптировать его из-за моей среды разработки (Windows), поэтому я префикс пути с протоколом '' file '', и он отлично работает! Еще раз спасибо, желаю вам счастливого нового года – Cr3aHal0
с новым годом, год g8. –