docxtemplater
Gerar Word DOCX a partir de modelos via JavaScript
Biblioteca JavaScript para criar, modificar e converter arquivos DOCX do Microsoft® Word.
O que é docxtemplater?
docxtemplater é uma biblioteca JavaScript de código aberto que ajuda na criação e edição de arquivos Word DOCX a partir de um modelo. A biblioteca Word JavaScript permite que os usuários personalizem documentos gerados usando o próprio Word. A biblioteca é fácil de manusear e não requer nenhuma habilidade técnica para editar um modelo do Word. A biblioteca também forneceu vários módulos para funcionalidades específicas.
A biblioteca docxtemplater suporta vários recursos relacionados à criação e manuseio de arquivos DOCX, como adicionar imagens, inserir texto formatado em um documento do Word, inserir cabeçalhos/rodapés, substituir imagens por quaisquer propriedades existentes, criar tabelas, adicionar texto de marca d'água, atualizar margens de página, inserir notas de rodapé para um documento e muito mais.
Como instalar o docxtemplater?
A maneira mais fácil e recomendada de instalar o docxtemplater é via npm. Por favor, use o seguinte comando para uma instalação suave.
Instalar docxtemplater via npm
npm install docxtemplater pizzip
Gerar Word DOCX via JavaScript
A biblioteca docxtemplater ajuda na criação de documentos DOCX em um aplicativo Node.js, bem como no navegador com facilidade. Também permite modificar os documentos DOCX existentes para inserir tabelas, imagens, texto, parágrafos e muito mais.
Atualização do Word DOCX via JavaScript
const PizZip = require("pizzip");
const Docxtemplater = require("docxtemplater");
const fs = require("fs");
const path = require("path");
// Load the docx file as binary content
const content = fs.readFileSync(
path.resolve(__dirname, "input.docx"),
"binary"
);
const zip = new PizZip(content);
const doc = new Docxtemplater(zip, {
paragraphLoop: true,
linebreaks: true,
});
// Render the document (Replace {first_name} by John, {last_name} by Doe, ...)
doc.render({
first_name: "John",
last_name: "Doe",
phone: "0652455478",
});
const buf = doc.getZip().generate({
type: "nodebuffer",
compression: "DEFLATE",
});
// buf is a nodejs Buffer, you can either write it to a
// file or res.send it with express for example.
fs.writeFileSync(path.resolve(__dirname, "output.docx"), buf);
Inserir e gerenciar tabelas em documentos do Word
A biblioteca docxtemplater permite que os desenvolvedores de software criem uma tabela com apenas algumas linhas de código JavaScript. A biblioteca inclui vários métodos para criar e gerenciar tabelas em um documento, como criação de tabelas do zero, criação de tabelas de loop vertical ou cópia de células, mesclagem de células de uma tabela, inserção de linhas e colunas, definição de largura para linhas e e assim por diante.
Adicionar nota de rodapé a documentos do Word
A biblioteca gratuita docxtemplater inclui suporte para adicionar notas de rodapé a um documento DOCX Word. A biblioteca oferece controle total para a personalização das notas de rodapé. Você pode adicionar números em sobrescrito e aplicar estilos diferentes ao conteúdo da nota de rodapé com facilidade.
Adicionar nota de rodapé aos documentos através de JavaScript
const imageOpts = {
getProps: function (img, tagValue, tagName) {
/*
* If you don't want to change the props
* for a given tagValue, you should write :
*
* return null;
*/
return {
rotation: 90,
// flipVertical: true,
// flipHorizontal: true,
};
},
getImage: function (tagValue, tagName) {
return fs.readFileSync(tagValue);
},
getSize: function (img, tagValue, tagName) {
return [150, 150];
},
};
const doc = new Docxtemplater(zip, {
modules: [new ImageModule(imageOpts)],
});
Adicionar e modificar imagens no DOCX
A biblioteca docxtemplater de código aberto dá aos programadores de software o poder de inserir imagens dentro de um documento do Word. A biblioteca permite definir a largura e a altura da imagem, alinhar imagens, adicionar uma legenda para as imagens, usar expressões angulares para definir tamanhos de imagem e assim por diante. Você também pode recuperar dados de imagem de qualquer fonte de dados, como dados base64, sistema de arquivos, URL e imagem armazenada do Amazon S3. Um ótimo recurso da biblioteca é que você pode evitar fotos maiores que o contêiner.
Rotar e Flip Imagens através de JavaScript
const imageOpts = {
getProps: function (img, tagValue, tagName) {
/*
* If you don't want to change the props
* for a given tagValue, you should write :
*
* return null;
*/
return {
rotation: 90,
// flipVertical: true,
// flipHorizontal: true,
};
},
getImage: function (tagValue, tagName) {
return fs.readFileSync(tagValue);
},
getSize: function (img, tagValue, tagName) {
return [150, 150];
},
};
const doc = new Docxtemplater(zip, {
modules: [new ImageModule(imageOpts)],
});