Docxtemplater

 
 

Biblioteca Node.js Gratuita para Criar & Gerenciar Word DOCX a partir de Modelos

Uma Biblioteca Node.js de Código Aberto líder permite Criar, Editar e Manipular Documentos Word DOCX, XLSX Dinamicamente usando uma Abordagem Simples Baseada em Modelo via API JavaScript.

O que é Docxtemplater?

No mundo digital acelerado de hoje, a eficiência é fundamental, especialmente quando se trata de gerenciamento de documentos. Seja para redigir contratos, gerar relatórios ou redigir cartas personalizadas, ter uma ferramenta confiável para automatizar a criação de documentos pode economizar tempo e recursos valiosos. Apresentamos o Docxtemplater, uma biblioteca poderosa que simplifica o processo de geração de documentos Word a partir de modelos. A biblioteca permite a geração de documentos baseada em modelo, onde marcadores dentro de um modelo de documento Word são substituídos por dados reais para criar o documento final.

Em sua essência, o Docxtemplater é uma poderosa biblioteca JavaScript de código aberto que permite aos desenvolvedores criar e gerenciar documentos Word, Excel e PowerPoint dinâmicos mesclando dados com um modelo pré‑definido. Aproveitando o formato OpenXML, a biblioteca fornece controle detalhado sobre a estrutura e o conteúdo dos documentos do usuário, permitindo inserir marcadores que serão substituídos por dados reais durante a execução.

Docxtemplater é uma biblioteca versátil que capacita desenvolvedores a automatizar a criação de documentos com facilidade. Ao aproveitar o poder dos modelos e da mesclagem de dados, você pode otimizar seu fluxo de trabalho de documentos e aumentar a produtividade significativamente. Usando a biblioteca corretamente, os desenvolvedores podem gerar facilmente documentos dinâmicos adaptados às suas necessidades específicas. Seja automatizando tarefas de geração de documentos ou personalizando relatórios, o Docxtemplater é uma ferramenta valiosa em seu arsenal.

Previous Next

Como Instalar o Docxtemplater?

Para instalar o Docxtemplater, você pode usar npm, o gerenciador de pacotes para JavaScript. Por favor, use os seguintes comandos para uma instalação bem‑sucedida.

Instalar Docxtemplater via npm

 npm install --save docxtemplater pizzip

Criação de Documentos Word via Modelo no Node.js

A biblioteca de código aberto Docxtemplater facilita para os desenvolvedores gerar documentos Microsoft Word DOCX usando um modelo. Os desenvolvedores podem inserir dados dinâmicos no modelo passando um objeto contendo pares chave‑valor para substituir marcadores por dados reais e criar o documento final. O exemplo a seguir demonstra como os desenvolvedores podem carregar um modelo existente e gerar um documento Word a partir dele no ambiente Node.js.

Como Gerar Documento Word a partir de um Modelo dentro do 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!');

Adicionar Funções Personalizadas & Filtros em Apps Node.js

Funções Personalizadas e Filtros na biblioteca Docxtemplater oferecem capacidades avançadas para manipular dados e executar operações específicas dentro de modelos. Eles permitem que os usuários ampliem a funcionalidade da biblioteca além da simples substituição de marcadores, possibilitando geração de conteúdo dinâmico e processamento complexo de dados. Você pode definir funções e filtros personalizados para manipular dados ou executar operações específicas dentro dos seus modelos. Aqui está um exemplo que demonstra como os desenvolvedores podem implementar uma função personalizada para calcular o preço total dos itens em um carrinho de compras e um filtro para formatar valores monetários.

Como Calcular Preços de Itens em um Carrinho de Compras via Função Personalizada & Usar Filtros para Formatar Valor Monetário?

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

Suporte a Formatação Rica

A biblioteca de código aberto Docxtemplater simplifica o processo de criação e gerenciamento de documentos Word ao oferecer uma abordagem clara baseada em modelo. O suporte a formatação rica em documentos Word refere‑se à capacidade de aplicar vários atributos de estilo, como tipos de fonte, cores, tamanhos, alinhamentos e mais a diferentes elementos dentro do documento. Isso inclui formatar texto, tabelas, imagens, parágrafos, formatação de seções, listas, marcadores e outros conteúdos para melhorar a legibilidade e o apelo visual. Aqui está um exemplo simples que mostra como aplicar formatação rica a uma parte do texto dentro de um documento.

Como aplicar formatação rica ao texto usando Docxtemplater em uma aplicação 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!');

 Português