При создании html документа с помощью fs не подключаются стили
С клиента собираю html код элемента, добавляю к нему 2 файла стилей: CDN и локальный. Отсылаю на сервер. На сервере делаю html документ с собранным кодом для дальнейшей конвертации в pdf. После конвертации приходит pdf в котором подключились стили из файла CDN, но не подключились из локального файла. Клиент:
const styles = "<link rel=\"stylesheet\" href=\"https://cdn.quilljs.com/1.3.6/quill.core.css\">" +
"<link rel=\"stylesheet\" href=\"styles.css\">"
const html = styles + document.getElementById("container").outerHTML
await PDFService.getPDF("file", html) //там идет axios запрос
.then(res => res.data)
.then(base64String => {
const anchorTag = document.createElement('a');
anchorTag.href = base64String;
anchorTag.download = "file.pdf";
anchorTag.click();
});
Сервер:
import htmlPdf from "html-pdf"
import fs from "fs";
const { fileName, html } = req.body
fs.writeFileSync(`./src/html-to-pdf-module/${fileName}.html`, html, 'utf-8')
const html1 = fs.readFileSync(`./src/html-to-pdf-module/${fileName}.html`, 'utf-8')
htmlPdf.create(html1, {format: 'A4'}).toFile(`./src/html-to-pdf-module/${fileName}.pdf`, (err) => {
if(err) {
return console.log('Ошибка конвертации', err)
}
fs.readFile(`./src/html-to-pdf-module/${fileName}.pdf`, (e, data) => {
if (e) res.status(500).send(e);
res.contentType('application/pdf')
.send(`data:application/pdf;base64,${new Buffer(data).toString('base64')}`);
fs.unlinkSync(`./src/html-to-pdf-module/${fileName}.html`)
fs.unlinkSync(`./src/html-to-pdf-module/${fileName}.pdf`)
});
})