JavaScript API pro generování dynamických dokumentů Word

Open source JavaScript knihovna pro vytváření dynamických dokumentů Word s Node.js a prohlížečovými pplications.

Co je Docx-templates?

Docx-Templates je open-source JavaScript knihovna, která umožňuje vývojářům softwaru generovat dynamické dokumenty Microsoft Word (.docx) pomocí předdefinovaných šablon. Místo ručního programového vytváření Word dokumentů mohou vývojáři navrhovat šablony v Microsoft Word a vkládat dynamická data pomocí vložených příkazů. Tato knihovna funguje jak v prostředí Node.js, tak v prohlížečích, což ji činí vysoce univerzální pro moderní webové i serverové aplikace. Zpracovává soubory DOCX parsováním jejich vnitřní XML struktury a nahrazováním šablonových příkazů skutečnými daty za běhu.

Knihovna Docx-Templates je výkonný, open-source nástroj určený jak pro prostředí Node.js, tak pro prohlížeče. Hlavní výhodou knihovny je oddělení designu a logiky. Uživatelé bez technických znalostí mohou navrhovat rozvržení a stylování ve Wordu, zatímco vývojáři se soustředí na vkládání dat. Podporuje složitou logiku, jako jsou smyčky, podmíněné formátování a dokonce i spouštění útržků JavaScriptu přímo v dokumentu. To z ní činí ideální řešení pro vývojáře, kteří potřebují vytvářet vysoce věrné zprávy bez boje s XML nebo proprietárními nástroji pro design.

Previous Next

Začínáme s Docx-templates

Doporučený způsob instalace knihovny Docx-templates je přes npm. Použijte prosím následující příkaz pro hladkou instalaci

Nainstalujte Docx-Templates pomocí NPM

$ npm install docx-templates 

Nainstalujte Docx-Templates pomocí Yarn/strong>

$ yarn add docx-templates 

Generování dokumentů založených na šablonách pomocí JS API

Otevřená knihovna Docx-Templates umožňuje vývojářům softwaru navrhovat dokumenty ve Wordu a dynamicky vkládat data pomocí jednoduchých příkazů. Tento přístup odděluje prezentaci od logiky, což usnadňuje správu a aktualizaci šablon bez změny kódu. Můžete přímo přistupovat k vlastnostem z vašeho datového objektu nebo dokonce spouštět jednoduché výrazy. Například pro vložení celého jména by vaše šablona vypadala takto: {firstName} {surname}. Knihovna vyhodnotí kód a nahradí jej plynule.

Jak dynamicky vytvářet Word dokumenty v JavaScript aplikacích?

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);

Dynamické vkládání obrázků pomocí JavaScriptu

Vedle textu může otevřená knihovna Docx-Templates vkládat obrázky za běhu. To zahrnuje lokální soubory, obrázky z URL nebo dokonce programově generované QR kódy. Můžete řídit velikost obrázku a jeho umístění. Tato funkce je průlomová pro tvorbu identifikačních štítků, produktových katalogů nebo zpráv, které vyžadují dynamické grafy a vizuální důkazy. Zde je jednoduchý příklad, který ukazuje, jak vložit obrázek do dokumentu Word pomocí JavaScript API.

Jak vložit obrázek za běhu do Word dokumentů pomocí 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()}

Výkonné smyčky (FOR/END-FOR)

Zpracování seznamů dat je s příkazem FOR bezproblémové. Tato funkce vám umožňuje iterovat přes pole a generovat řádky tabulky, seznamy nebo dokonce celé sekce dokumentu. Knihovna Docx-Templates zahrnuje podporu vnořených smyček, což vám umožní reprezentovat složité hierarchické datové struktury, například seznam oddělení s jejich příslušnými zaměstnanci, a to vše při zachování původního stylu Wordu. Následující ukázkový kód ukazuje, jak toho dosáhnout.

Jak použít pokročilé smyčky v JavaScript aplikacích?

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}
*/

Vlastní kontext JavaScriptu (EXEC)

Jednou z nejpokročilejších funkcí knihovny Docx-Templates je schopnost spouštět libovolné úryvky JavaScriptu pomocí příkazu EXEC (nebo !). Poskytnutím additionalJsContext můžete šabloně zpřístupnit vlastní pomocné funkce. To umožňuje šabloně provádět výpočty, formátovat data nebo interně manipulovat s řetězci, aniž by bylo nutné předzpracovávat každý kus dat ve vaší hlavní aplikační logice.

 Čeština