JavaScript API, skirtas generuoti dinamiškus Word dokumentus
Atviro kodo JavaScript biblioteka, skirta kurti dinamiškus Word dokumentus naudojant Node.js ir naršyklės pagrindu veikiančias programas.
Kas yra Docx-templates?
Docx-Templates yra atviro kodo JavaScript biblioteka, kuri leidžia programinės įrangos kūrėjams generuoti dinamiškus Microsoft Word (.docx) dokumentus naudojant iš anksto paruoštus šablonus. Vietoj to, kad rankiniu būdu programuotų Word dokumentus, kūrėjai gali kurti šablonus Microsoft Word programoje ir įterpti dinaminę informaciją naudojant įterptus komandas. Ši biblioteka veikia tiek Node.js, tiek naršyklės aplinkoje, todėl yra itin lanksti šiuolaikinėms interneto ir serverio pusės programoms. Ji apdoroja DOCX failus, analizuodama jų vidinę XML struktūrą ir pakeisdama šablono komandas realiu laiku faktiniais duomenimis.
Docx-Templates biblioteka yra galingas, atviro kodo įrankis, sukurtas tiek Node.js, tiek naršyklės aplinkoms. Pagrindinis bibliotekos privalumas – dizaino ir logikos atskyrimas. Netechniniai naudotojai gali kurti išdėstymą ir stilių Word programoje, o kūrėjai susitelkia į duomenų įterpimą. Ji palaiko sudėtingą logiką, tokią kaip ciklai, sąlyginis formatavimas ir net JavaScript iškarpų vykdymą tiesiai dokumente. Tai puikus sprendimas kūrėjams, kuriems reikia kurti aukštos kokybės ataskaitas be kovos su XML ar nuosavybiniais dizaino įrankiais.
Pradžia su Docx-templates
Rekomenduojamas būdas įdiegti Docx-templates biblioteką – per npm. Prašome naudoti šią komandą sklandžiam įdiegimui.
Įdiekite Docx-Templates per NPM
$ npm install docx-templates Įdiekite Docx-Templates per Yarn/strong>
$ yarn add docx-templates Dokumentų generavimas pagal šablonus per JS API
Atviro kodo Docx-Templates biblioteka leidžia programinės įrangos kūrėjams kurti dokumentus Word programoje ir dinamiškai įterpti duomenis naudojant paprastus komandas. Šis požiūris atskiria prezentaciją nuo logikos, todėl šablonus lengva tvarkyti ir atnaujinti be kodo keitimo. Galite tiesiogiai pasiekti savybes iš savo duomenų objekto arba net vykdyti paprastas išraiškas. Pavyzdžiui, norint įterpti visą vardą, jūsų šablonas atrodys taip: {firstName} {surname}. Biblioteka įvertina kodą ir sklandžiai jį pakeičia.
Kaip dinamiškai kurti Word dokumentus JavaScript programose?
import createReport from 'docx-templates';
import fs from 'fs';
const template = fs.readFileSync('template.docx');
const report = await createReport({
template,
data: { name: 'John', surname: 'Doe' },
});
fs.writeFileSync('output.docx', report);
Dinaminis vaizdų įterpimas per JavaScript
Be teksto, atviro kodo Docx-Templates biblioteka gali įterpti vaizdus realiu laiku. Tai apima vietinius failus, vaizdus iš URL arba net programiškai sukurtus QR kodus. Galite valdyti vaizdo dydį ir jo išdėstymą. Ši funkcija yra revoliucinė kuriant identifikacines žymas, produktų katalogus arba ataskaitas, kurioms reikalingos dinaminės diagramos ir vizualiniai įrodymai. Štai paprastas pavyzdys, demonstruojantis, kaip įterpti vaizdą į Word dokumentą naudojant JavaScript API.
Kaip įterpti paveikslėlį realiu laiku į Word dokumentus naudojant JavaScript API?
const buffer = await createReport({
template,
data: {
userAvatar: async () => {
const resp = await fetch('https://example.com/photo.png');
return { width: 3, height: 3, data: await resp.arrayBuffer(), extension: '.png' };
}
},
});
// In Word: {IMAGE userAvatar()}
Galingi ciklai (FOR/END-FOR)
Duomenų sąrašų tvarkymas yra sklandus naudojant FOR komandą. Ši funkcija leidžia iteruoti per masyvus, kad sukurtumėte lentelės eilutes, sąrašus arba net visus dokumento skyrius. Docx-Templates biblioteka įtraukė palaikymą įdėtiniams ciklams, leidžiančioms atvaizduoti sudėtingas hierarchines duomenų struktūras, pvz., skyrių sąrašą su jų atitinkamais darbuotojais, išlaikant originalų Word stilių. Žemiau pateiktas kodo pavyzdys parodo, kaip tai pasiekti.
Kaip taikyti pažangų ciklą JavaScript programose?
const buffer = await createReport({
template,
data: {
projects: [
{ name: 'SEO Optimization', status: 'Completed' },
{ name: 'API Integration', status: 'In Progress' }
]
},
});
/* In Word:
{FOR project IN projects}
Project: {project.name} - Status: {project.status}
{END-FOR}
*/
Pasirinktinis JavaScript kontekstas (EXEC)
Viena iš pažangiausių Docx-Templates bibliotekos funkcijų yra galimybė vykdyti bet kokius JavaScript fragmentus naudojant EXEC (arba !) komandą. Pateikdami additionalJsContext, galite šablonui atskleisti pasirinktines pagalbines funkcijas. Tai leidžia šablonui atlikti skaičiavimus, formatuoti datas arba manipuliuoti eilutėmis viduje, nereikalaujant iš anksto apdoroti kiekvieną duomenų dalį pagrindinėje programos logikoje.