Docxtemplater

 
 

Безкоштовна бібліотека Node.js для створення та управління Word DOCX за шаблонами

Ведуча бібліотека з відкритим вихідним кодом Node.js дозволяє створювати, редагувати та маніпулювати документами Word DOCX, XLSX динамічно, використовуючи простий шаблонний підхід через API JavaScript.

Що таке Docxtemplater?

У сьогоднішньому швидкоплинному цифровому світі ефективність має ключове значення, особливо коли мова йде про управління документами. Будь то складання контрактів, створення звітів чи написання персоналізованих листів, наявність надійного інструменту для автоматизації створення документів може заощадити цінний час та ресурси. Представляємо Docxtemplater – потужну бібліотеку, що спрощує процес генерування документів Word за шаблонами. Бібліотека дозволяє генерувати документи на основі шаблонів, де заповнювачі в шаблоні Word замінюються фактичними даними для створення остаточного вихідного документа.

У своїй суті Docxtemplater – потужна бібліотека JavaScript з відкритим кодом, яка дозволяє розробникам створювати та керувати динамічними документами Word, Excel та PowerPoint, об’єднуючи дані з заздалегідь визначеним шаблоном. Використовуючи формат OpenXML, бібліотека забезпечує деталізований контроль над структурою та вмістом документів користувача, дозволяючи вставляти заповнювачі, які під час виконання замінюються реальними даними.

Docxtemplater – це універсальна бібліотека, яка дає змогу розробникам без зусиль автоматизувати створення документів. Завдяки використанню шаблонів та об’єднанню даних ви можете оптимізувати робочий процес з документами та значно підвищити продуктивність. При правильному використанні бібліотеки розробники легко генерують динамічні документи, пристосовані до їхніх конкретних потреб. Незалежно від того, чи автоматизуєте ви процеси створення документів, чи персоналізуєте звіти, Docxtemplater є цінним інструментом у вашому арсеналі.

Previous Next

Як встановити Docxtemplater?

Щоб встановити Docxtemplater, ви можете скористатися npm – менеджером пакетів для JavaScript. Будь ласка, використайте наступні команди для успішної інсталяції.

Встановити Docxtemplater через npm

 npm install --save docxtemplater pizzip

Створення документів Word за шаблоном у Node.js

Бібліотека Docxtemplater з відкритим кодом спрощує розробникам генерацію документів Microsoft Word DOCX за допомогою шаблону. Розробники можуть впроваджувати динамічні дані у шаблон, передаючи об’єкт з парами «ключ‑значення», щоб замінити заповнювачі фактичними даними та створити остаточний вихідний документ. Нижче наведено приклад, який демонструє, як розробники можуть завантажити існуючий шаблон і згенерувати документ Word у середовищі Node.js.

Як згенерувати документ Word з шаблону всередині 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!');

Додати користувацькі функції та фільтри у додатках Node.js

Користувацькі функції та фільтри в бібліотеці Docxtemplater надають розширені можливості для маніпулювання даними та виконання спеціальних операцій у шаблонах. Вони дозволяють користувачам розширювати функціональність бібліотеки за межі базової заміни заповнювачів, забезпечуючи динамічне генерування контенту та складну обробку даних. Ви можете визначати власні функції та фільтри для маніпулювання даними або виконання конкретних операцій у ваших шаблонах. Ось приклад, який показує, як розробники можуть реалізувати користувацьку функцію для обчислення загальної вартості товарів у кошику та фільтр для форматування валютних значень.

Як розрахувати ціни товарів у кошику за допомогою користувацької функції та використати фільтри для форматування валютного значення?

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

Підтримка розширеного форматування

Бібліотека Docxtemplater з відкритим кодом спрощує процес створення та управління документами Word, пропонуючи простий підхід на основі шаблонів. Підтримка розширеного форматування у документах Word означає можливість застосовувати різноманітні атрибути стилю, такі як шрифти, кольори, розміри, вирівнювання та інше до різних елементів документа. Це включає форматування тексту, таблиць, зображень, абзаців, секцій, списків, маркерованих пунктів та іншого контенту для підвищення читабельності та візуальної привабливості. Нижче наведено простий приклад, який показує, як застосувати розширене форматування до частини тексту у документі.

Як застосувати розширене форматування до тексту за допомогою Docxtemplater у 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!');

 Українська