src/service/1.0.0/pdf.service.ts
Methods |
|
constructor()
|
Defined in src/service/1.0.0/pdf.service.ts:9
|
Async createPDF | ||||||||||||||||||||
createPDF(templateName: string, vars: object, outFileName: string, qr: string)
|
||||||||||||||||||||
Defined in src/service/1.0.0/pdf.service.ts:14
|
||||||||||||||||||||
Parameters :
Returns :
Promise<any>
|
import { Injectable } from '@nestjs/common';
import * as fs from 'fs';
import qrcode from 'qrcode';
import * as path from 'path';
import * as pdf from 'html-pdf';
@Injectable()
export class PdfService {
constructor(
) { }
async createPDF(templateName: string, vars: object, outFileName: string, qr: string = null): Promise<any> {
let template = fs.readFileSync(path.resolve(__dirname, `../../../template/pdf/${templateName}.html`)).toString()
if (qr !== null) {
let qrCodeDadatURL = await qrcode.toDataURL(qr, { errorCorrectionLevel: 'H' });
template = template.replace(new RegExp(`{{ CODE }}`, `g`), `<img src="${qrCodeDadatURL}" alt="qr" width="374" height="374" style="display: block; margin-left: auto; margin-right: auto;">`);
}
for (const key of Object.keys(vars)) {
template = template.replace(new RegExp(`{{ ${key} }}`, `g`), vars[key]);
}
const teszt = await new Promise((resolve, reject) => {
pdf.create(template).toFile('./files/pdf/' + outFileName + ".pdf", function (err, res) {
if (err) return console.log("error: " + err);
resolve(res);
});
})
return teszt
}
}