File

src/service/1.0.0/pdf.service.ts

Index

Methods

Constructor

constructor()

Methods

Async createPDF
createPDF(templateName: string, vars: object, outFileName: string, qr: string)
Parameters :
Name Type Optional Default value
templateName string No
vars object No
outFileName string No
qr string No null
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
    }
}

result-matching ""

    No results matching ""