hrms-report-template/test-run/docx-template.ts

22 lines
1.1 KiB
TypeScript

// npx ts-node docx-template.ts
import * as readline from 'node:readline/promises'; // This uses the promise-based APIs
import { stdin as input, stdout as output } from 'node:process';
import { docxTemplateX} from '../libs/docx-templates-lib';
import {templateOption} from '../libs/report-template'
import fs from 'fs';
(async ()=>{
const rl = readline.createInterface({ input, output });
const e = await rl.question('Output extension(docx,pdf,odt,png,jpeg): ');
const ext =e?e:"docx"
const dpath = await rl.question('JSON data path(./docx.json): ');
const datapath = dpath?dpath:"./docx.json"
const data_raw = fs.readFileSync(datapath);
const tdata:templateOption = JSON.parse(data_raw.toString());
const bpath = await rl.question('templates path(../templates/docx): ');
const basepath = bpath?bpath:"../templates/docx"
//const template = await fs.promises.readFile(`${basepath}/${tdata.template}.docx`)
let buffer = await docxTemplateX(`${basepath}/${tdata.template}.docx`, tdata,ext)
fs.writeFileSync(".output/"+tdata.reportName+"."+ext, buffer);
rl.close();
})()