import * as plugins from './plugins.js'; import * as paths from './paths.js'; import * as helpers from './helpers.js'; import * as interfaces from '../ts/interfaces/index.js'; export interface IPdfServiceConstructorOptions { } /** * a pdf service for generating pdfs */ export class PdfService { // STATIC public static async createAndStart(optionsArg: IPdfServiceConstructorOptions) { const pdfService = new PdfService(optionsArg); await pdfService.start(); return pdfService; } // INSTANCE options: IPdfServiceConstructorOptions; public smartpdfInstance: plugins.smartpdf.SmartPdf; constructor(optionsArg: IPdfServiceConstructorOptions) { this.options = optionsArg; } /** * starts the PdfService */ public async start() { this.smartpdfInstance = new plugins.smartpdf.SmartPdf(); await this.smartpdfInstance.start(); } /** * stops the PdfService */ public async stop() { await this.smartpdfInstance.stop(); } /** * creates an letter */ public async createPdfFromLetterObject(optionsArg: { letterData: plugins.tsclass.business.ILetter, documentSettings: interfaces.IDocumentSettings }) { const html = ` `; // console.log(html); const pdfResult = await this.smartpdfInstance.getA4PdfResultForHtmlString(html); return pdfResult; } }