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

התכונה המרכזית של הספרייה היא הפשטות שלה בהמרת מגוון רחב של פורמטי מסמכים. הדוגמה שלהלן מציגה כיצד מפתחים יכולים לטעון ולהמיר מסמך Word DOCX לפורמט קובץ PDF בתוך אפליקציות 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

הספרייה קוד פתוח Awesome-Unoconv, מקלה על מפתחים לטעון ולהמיר מסמכי משרד שונים בתוך יישומי Node.js. מפתחי תוכנה יכולים לציין אפשרויות המרה מתקדמות, כגון טווחי דפים, איכות תמונה, ורזולוציית פלט, כדי להתאים את הפלט לדרישות שלהם. הדוגמה שלהלן מציגה כיצד מפתחים יכולים לייצא דפים ספציפיים של PDF ל‑PNG ברזולוציה מותאמת.

איך לחשב מחירי פריטים בעגלת קניות באמצעות פונקציה מותאמת ולהשתמש במסננים לעיצוב ערך מטבע?

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

תמיכת פורמט עשיר

בעזרת ספריית Awesome-Unoconv, מפתחים יכולים לבצע המרות קבוצתיות של מסמכים בקלות. תכונה זו שימושית כאשר עובדים עם אוספים גדולים של מסמכים שצריך להמיר לפורמטים שונים. היא תומכת בהמרת מספר קבצים במקביל, חוסכת זמן ומאמץ. רק עם כמה שורות קוד, מפתחים יכולים להמיר מספר קבצים בבת אחת. הנה דוגמה שממירה מספר קבצים בקבוצה, מה שמפשט משימות עיבוד מסמכים בקנה מידה גדול.

איך להחיל פורמט עשיר על טקסט באמצעות 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!');

 עִברִית