Docxtemplater

 
 

Libreria Node.js gratuita per creare e gestire Word DOCX da template

Una libreria Node.js open source leader permette di creare, modificare e manipolare dinamicamente documenti Word DOCX, XLSX usando un semplice approccio basato su template tramite API JavaScript.

Che cos'è Docxtemplater?

Nel mondo digitale di oggi, in rapido cambiamento, l'efficienza è fondamentale, soprattutto nella gestione dei documenti. Che gli utenti debbano redigere contratti, generare report o creare lettere personalizzate, avere uno strumento affidabile per automatizzare la creazione dei documenti può far risparmiare tempo e risorse preziose. Ecco Docxtemplater, una libreria potente che semplifica il processo di generazione di documenti Word da template. La libreria consente la generazione di documenti basata su template, dove i segnaposto all'interno del template di un documento Word vengono sostituiti con dati reali per creare il documento finale.

Nel suo nucleo, Docxtemplater è una potente libreria JavaScript open source che permette agli sviluppatori di creare e gestire dinamicamente documenti Word, Excel e PowerPoint fondendo i dati con un template predefinito. Sfruttando il formato OpenXML, la libreria offre un controllo dettagliato sulla struttura e sul contenuto dei documenti dell'utente, consentendo loro di inserire segnaposti che verranno sostituiti con dati reali durante l'esecuzione.

Docxtemplater è una libreria versatile che consente agli sviluppatori di automatizzare la creazione di documenti con facilità. Sfruttando la potenza dei template e della fusione dei dati, è possibile ottimizzare il flusso di lavoro dei documenti e aumentare significativamente la produttività. Utilizzando correttamente la libreria, gli sviluppatori possono generare facilmente documenti dinamici su misura per le loro esigenze specifiche. Che tu stia automatizzando compiti di generazione di documenti o personalizzando report, Docxtemplater è uno strumento prezioso nel tuo arsenale.

Previous Next

Come installare Docxtemplater?

Per installare Docxtemplater, puoi usare npm, il gestore di pacchetti per JavaScript. Usa i seguenti comandi per un'installazione riuscita.

Installa Docxtemplater via npm

 npm install --save docxtemplater pizzip

Creazione di documenti Word tramite template in Node.js

La libreria open source Docxtemplater rende facile per gli sviluppatori generare documenti Microsoft Word DOCX usando un template. Gli sviluppatori possono iniettare dati dinamici nel template passando un oggetto contenente coppie chiave-valore per sostituire i segnaposto con dati reali e creare il documento finale. L'esempio seguente mostra come gli sviluppatori possono caricare un template esistente e generare un documento Word al suo interno nell'ambiente Node.js.

Come generare un documento Word da un template all'interno di 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!');

Aggiungi funzioni e filtri personalizzati nelle app Node.js

Funzioni e filtri personalizzati nella libreria Docxtemplater offrono capacità avanzate per manipolare i dati e eseguire operazioni specifiche all'interno dei template. Consentono agli utenti di estendere la funzionalità della libreria oltre la semplice sostituzione dei segnaposto, permettendo la generazione di contenuti dinamici e l'elaborazione di dati complessi. Puoi definire funzioni e filtri personalizzati per manipolare i dati o eseguire operazioni specifiche nei tuoi template. Ecco un esempio che mostra come gli sviluppatori possono implementare una funzione personalizzata per calcolare il prezzo totale degli articoli in un carrello e un filtro per formattare i valori di valuta.

Come calcolare i prezzi degli articoli in un carrello tramite funzione personalizzata e usare filtri per formattare il valore della valuta?

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

Supporto per formattazione avanzata

La libreria open source Docxtemplater semplifica il processo di creazione e gestione di documenti Word offrendo un approccio basato su template semplice. Il supporto alla formattazione avanzata nei documenti Word indica la capacità di applicare vari attributi di stile come stili di carattere, colori, dimensioni, allineamenti e molto altro a diversi elementi all'interno del documento Word. Ciò include la formattazione di testo, tabelle, immagini, paragrafi, formattazione di sezioni, elenchi, punti elenco e altri contenuti per migliorare la leggibilità e l'aspetto visivo. Ecco un semplice esempio che mostra come applicare la formattazione avanzata a una parte di testo all'interno di un documento.

Come applicare la formattazione avanzata al testo usando Docxtemplater in una applicazione 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!');

 Italiano