1. produkty
  2.   Zpracování textu
  3.   Node.js
  4.   Docxtemplater

Docxtemplater

 
 

Bezplatná Node.js knihovna pro vytváření a správu Word DOCX ze šablon

Vedoucí open source knihovna Node.js umožňuje dynamicky vytvářet, upravovat a manipulovat s dokumenty Word DOCX, XLSX pomocí jednoduchého šablonového přístupu přes JavaScript API.

Co je Docxtemplater?

V dnešním rychle se rozvíjejícím digitálním světě je efektivita zásadní, zejména pokud jde o správu dokumentů. Ať už uživatelé potřebují vypracovat smlouvy, generovat zprávy nebo vytvářet osobní dopisy, spolehlivý nástroj pro automatizaci tvorby dokumentů jim může ušetřit cenný čas a zdroje. Přichází Docxtemplater, výkonná knihovna, která zjednodušuje proces generování Word dokumentů ze šablon. Knihovna umožňuje generování dokumentů založené na šabloně, kde jsou zástupné znaky v šabloně Word dokumentu nahrazeny skutečnými daty pro vytvoření finálního výstupního dokumentu.

V jádru je Docxtemplater výkonná open source knihovna JavaScript, která umožňuje vývojářům softwaru vytvářet a spravovat dynamické Word, Excel a PowerPoint dokumenty sloučením dat s předdefinovanou šablonou. Využitím formátu OpenXML knihovna poskytuje jemnou kontrolu nad strukturou a obsahem uživatelských dokumentů, což jim umožňuje vkládat zástupné znaky, které budou během běhu nahrazeny skutečnými daty.

Docxtemplater je všestranná knihovna, která umožňuje vývojářům softwaru snadno automatizovat tvorbu dokumentů. Využitím síly šablon a sloučení dat můžete zefektivnit svůj pracovní tok s dokumenty a výrazně zvýšit produktivitu. Správným používáním knihovny mohou vývojáři snadno generovat dynamické dokumenty přizpůsobené jejich specifickým potřebám. Ať už automatizujete úkoly generování dokumentů nebo personalizujete zprávy, Docxtemplater je cenný nástroj ve vašem arzenálu.

Previous Next

Jak nainstalovat Docxtemplater?

Pro instalaci Docxtemplater můžete použít npm, správce balíčků pro JavaScript. Použijte následující příkazy pro úspěšnou instalaci.

Instalovat Docxtemplater pomocí npm

 npm install --save docxtemplater pizzip

Vytváření Word dokumentů pomocí šablony v Node.js

Open source knihovna Docxtemplater usnadňuje vývojářům softwaru generovat Microsoft Word DOCX dokumenty pomocí šablony. Vývojáři mohou injektovat dynamická data do šablony předáním objektu obsahujícího páry klíč‑hodnota k nahrazení zástupných znaků skutečnými daty a vytvoření finálního výstupního dokumentu. Následující příklad ukazuje, jak vývojáři mohou načíst existující šablonu a vygenerovat z ní Word dokument v prostředí Node.js.

Jak vygenerovat Word dokument ze šablony v Node.js?

const fs = require('fs');
const Docxtemplater = require('docxtemplater');

// Load the template
const content = fs.readFileSync('template.docx', 'binary');
const doc = new Docxtemplater(content);

// Set data to fill placeholders
const data = {
  firstName: 'John',
  lastName: 'Doe'
};

// Replace placeholders with actual data
doc.setData(data);

// Render the document
doc.render();

// Save the generated document
const output = fs.writeFileSync('output.docx', doc.getZip().generate({type: 'nodebuffer'}));

console.log('Document generated successfully!');

Přidání vlastních funkcí a filtrů do aplikací Node.js

Vlastní funkce a filtry v knihovně Docxtemplater nabízejí pokročilé možnosti pro manipulaci s daty a provádění specifických operací v šablonách. Umožňují uživatelům rozšířit funkčnost knihovny nad rámec základní výměny zástupných znaků, což umožňuje generování dynamického obsahu a složité zpracování dat. Můžete definovat vlastní funkce a filtry pro manipulaci s daty nebo provádění specifických operací ve vašich šablonách. Zde je příklad, který ukazuje, jak mohou vývojáři implementovat vlastní funkci pro výpočet celkové ceny položek v nákupním košíku a filtr pro formátování měnových hodnot.

Jak vypočítat ceny položek v nákupním košíku pomocí vlastní funkce a použít filtry pro formátování měnové hodnoty?

const fs = require('fs');
const Docxtemplater = require('docxtemplater');

// Define custom function to calculate total price
function calculateTotal(items) {
  return items.reduce((total, item) => total + item.price * item.quantity, 0);
}

// Define custom filter to format currency
function formatCurrency(value) {
  return '$' + value.toFixed(2); // Format as dollars with 2 decimal places
}

// Load the template
const content = fs.readFileSync('template.docx', 'binary');
const doc = new Docxtemplater(content, {
  parser: {
    // Define custom tag for invoking functions
    getFunction: function(tag) {
      if (tag === 'calculateTotal') {
        return calculateTotal;
      }
    },
    // Define custom tag for applying filters
    getFilter: function(tag) {
      if (tag === 'currency') {
        return formatCurrency;
      }
    }
  }
});

// Set data with shopping cart items
const data = {
  items: [
    { name: 'Product 1', price: 10, quantity: 2 },
    { name: 'Product 2', price: 20, quantity: 1 },
    { name: 'Product 3', price: 15, quantity: 3 }
  ]
};

// Replace placeholders with actual data
doc.setData(data);

// Render the document
doc.render();

// Save the generated document
const output = fs.writeFileSync('output.docx', doc.getZip().generate({ type: 'nodebuffer' }));

console.log('Document generated successfully!');

Podpora bohatého formátování

Open source Docxtemplater zjednodušuje proces vytváření a správy Word dokumentů nabídkou přímého šablonového přístupu. Podpora bohatého formátování ve Word dokumentech odkazuje na možnost aplikovat různé stylové atributy, jako jsou styly písma, barvy, velikosti, zarovnání a další na různé prvky ve Word dokumentu. To zahrnuje formátování textu, tabulek, obrázků, odstavců, sekcí, seznamů, odrážek a dalšího obsahu pro zvýšení čitelnosti a vizuální přitažlivosti. Zde je jednoduchý příklad, který ukazuje, jak použít bohaté formátování na část textu uvnitř dokumentu.

Jak použít bohaté formátování na text pomocí Docxtemplater v aplikaci Node.js?

// Render the document with custom parser options for rich formatting
doc.render({
  parser: {
    // Custom tag for interpreting HTML-like tags for rich formatting
    tagToken: function(tag) {
      return {
        tagName: tag.substring(1),
        mode: 'open'
      };
    },
    // Apply rich formatting based on tag names
    commands: {
      b: function(scope, context, tag) {
        return {
          type: 'applyRichText',
          value: { b: true }
        };
      },
      i: function(scope, context, tag) {
        return {
          type: 'applyRichText',
          value: { i: true }
        };
      },
      u: function(scope, context, tag) {
        return {
          type: 'applyRichText',
          value: { u: true }
        };
      },
      strike: function(scope, context, tag) {
        return {
          type: 'applyRichText',
          value: { strike: true }
        };
      }
    }
  }
});

// Save the generated document
const output = fs.writeFileSync('output.docx', doc.getZip().generate({ type: 'nodebuffer' }));

console.log('Document generated successfully!');

 Čeština