I am using pdfKit and html-to-text for generating pdfs from html. The problem currently is, styles from html are not reflecting in pdf. I am open for both type of solutions, if problem can be solved with these packages or we have to change.
const PDFDocument = require("pdfkit");
const {convert} =require('html-to-text');
const {PassThrough}=require("stream");
const generateCombinedCertificatePDFBuff = (context, compiledHTML) => {
return new Promise(async (resolve, reject) => {
try {
const doc = new PDFDocument();
const buffer = [];
const stream = new PassThrough();
doc.pipe(stream);
doc.text(convert(compiledHTML));
doc.end();
stream.on("data", (chunk) => buffer.push(chunk));
stream.on("end", () => resolve(Buffer.concat(buffer)));
stream.on("error", (err) => reject(err));
} catch (err) {
console.log(err);
reject(err);
}
});
};
Note: I am shifting from puppeteer (due to the huge time it is taking), i have also tried html-pdf (having some styling issues in it too), don't recommend these.