
Docxtemplater
Безплатна Node.js библиотека за създаване и управление на Word DOCX от шаблони
Водеща отворена (Open Source) Node.js библиотека позволява създаване, редактиране и манипулиране на Word DOCX, XLSX документи динамично, използвайки прост шаблон‑базиран подход чрез JavaScript API.
Какво е Docxtemplater?
В днешния бързо развиващ се дигитален свят ефективността е от съществено значение, особено когато става въпрос за управление на документи. Независимо дали потребителите трябва да изготвят договори, генерират отчети или създават персонализирани писма, надежден инструмент за автоматизирано създаване на документи може да спести ценно време и ресурси. Тук на помощ е Docxtemplater, мощна библиотека, която опростява процеса на генериране на Word документи от шаблони. Библиотеката позволява генериране на документи, базирано на шаблони, където запълващите полета в шаблона на Word се заменят с реални данни, за да се създаде окончателният изходен документ.
В основата си Docxtemplater е мощна отворена (open source) JavaScript библиотека, която позволява на софтуерните разработчици да създават и управляват динамични Word, Excel и PowerPoint документи чрез обединяване на данни с предварително дефиниран шаблон. Използвайки формата OpenXML, библиотеката предоставя фина настройка върху структурата и съдържанието на документите на потребителя, като им позволява да вмъкват запълващи полета, които ще бъдат заменени с реални данни в процеса на изпълнение.
Docxtemplater е универсална библиотека, която дава възможност на софтуерните разработчици да автоматизират създаването на документи лесно. Със силата на шаблони и слепване на данни, можете да оптимизирате работния процес с документи и значително да повишите продуктивността. При правилна употреба, софтуерните разработчици могат лесно да генерират динамични документи, съобразени със специфичните им нужди. Независимо дали автоматизирате задачи за генериране на документи или персонализирате отчети, Docxtemplater е ценен инструмент във вашия арсенал.
Как да инсталирам Docxtemplater?
За да инсталирате Docxtemplater, можете да използвате npm, мениджъра на пакети за JavaScript. Моля, използвайте следните команди за успешна инсталация.
Инсталирайте Docxtemplater чрез npm
npm install --save docxtemplater pizzipСъздаване на Word документи чрез шаблон в Node.js
Отворената (open source) библиотека 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!');
Поддръжка на богато форматиране
Отворената (open source) библиотека Docxtemplater опростява процеса на създаване и управление на Word документи, като предлага прост шаблон‑базиран подход. Поддръжката на богато форматиране в 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!');
