API של JavaScript ליצירת מסמכי Word דינמיים

ספריית JavaScript קוד פתוח ליצירת מסמכי Word דינמיים עם Node.js ויישומים מבוססי דפדפן.

מהו Docx-templates?

Docx-Templates היא ספריית JavaScript בקוד פתוח שמאפשרת למפתחי תוכנה ליצור מסמכי Microsoft Word (.docx) דינמיים באמצעות תבניות מוגדרות מראש. במקום לבנות מסמכי Word באופן ידני בתכנות, המפתחים יכולים לעצב תבניות ב-Microsoft Word ולהזריק נתונים דינמיים באמצעות פקודות משובצות. ספרייה זו פועלת הן בסביבת Node.js והן בדפדפן, מה שהופך אותה למאוד גמישה עבור יישומי רשת מודרניים ויישומי צד שרת. היא מעבדת קבצי DOCX על‑ידי ניתוח המבנה הפנימי של XML והחלפת פקודות התבנית בנתונים אמיתיים בזמן ריצה.

ספריית Docx-Templates היא כלי חזק וקוד פתוח המיועד הן לסביבת Node.js והן לדפדפנים. היתרון העיקרי של הספרייה הוא ההפרדה בין העיצוב ללוגיקה. משתמשים לא‑טכניים יכולים לעצב את הפריסה והעיצוב ב‑Word, בעוד המפתחים מתמקדים בהזרקת הנתונים. היא תומכת בלוגיקה מורכבת כגון לולאות, עיצוב מותנה, ואף בביצוע קטעי JavaScript ישירות בתוך המסמך. זה הופך אותה לפתרון אידיאלי למפתחים שצריכים ליצור דוחות באיכות גבוהה ללא צורך להתמודד עם XML או כלי עיצוב קנייניים.

Previous Next

התחלה עם Docx-templates

הדרך המומלצת להתקנת ספריית Docx-templates היא דרך npm. אנא השתמשו בפקודה הבאה להתקנה חלקה

התקן את Docx-Templates באמצעות NPM

$ npm install docx-templates 

התקן את Docx-Templates באמצעות Yarn/strong>

$ yarn add docx-templates 

יצירת מסמכים מבוססי תבנית באמצעות API של JS

ספריית הקוד הפתוח Docx-Templates מאפשרת למפתחי תוכנה לעצב מסמכים ב-Word ולהזריק נתונים באופן דינמי באמצעות פקודות פשוטות. גישה זו מפרידה בין הצגת המידע ללוגיקה, מה שהופך את התבניות לקלות לניהול ולעדכון ללא שינוי הקוד. ניתן לגשת ישירות למאפיינים מאובייקט הנתונים שלך או אפילו להריץ ביטויים פשוטים. לדוגמה, כדי להכניס שם מלא, התבנית שלך תיראה כך: {firstName} {surname}. הספרייה מבצעת הערכה של הקוד ומחליפה אותו בצורה חלקה.

איך ליצור מסמכי Word באופן דינמי בתוך אפליקציות JavaScript?

import createReport from 'docx-templates';
import fs from 'fs';

const template = fs.readFileSync('template.docx');

const report = await createReport({
  template,
  data: { name: 'John', surname: 'Doe' },
});

fs.writeFileSync('output.docx', report);

הזרקת תמונות דינמית באמצעות JavaScript

מעבר לטקסט, ספריית הקוד הפתוח Docx-Templates יכולה להזריק תמונות בזמן אמת. זה כולל קבצים מקומיים, תמונות מכתובת URL, או אפילו קודי QR שנוצרים תכנותית. אתה יכול לשלוט בגודל התמונה ובמיקומה. תכונה זו משנה את כללי המשחק ביצירת תגים מזהים, קטלוגי מוצרים, או דוחות הדורשים תרשימים דינמיים והוכחות ויזואליות. הנה דוגמה פשוטה שמדגימה כיצד להכניס תמונה למסמכי Word באמצעות API של JavaScript.

איך להכניס תמונה בזמן אמת בתוך מסמכי Word באמצעות API של JavaScript?

const buffer = await createReport({
  template,
  data: {
    userAvatar: async () => {
      const resp = await fetch('https://example.com/photo.png');
      return { width: 3, height: 3, data: await resp.arrayBuffer(), extension: '.png' };
    }
  },
});
// In Word: {IMAGE userAvatar()}

לולאות חזקות (FOR/END-FOR)

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

איך ליישם לולאה מתקדמת בתוך אפליקציות JavaScript?

const buffer = await createReport({
  template,
  data: {
    projects: [
      { name: 'SEO Optimization', status: 'Completed' },
      { name: 'API Integration', status: 'In Progress' }
    ]
  },
});
/* In Word:
{FOR project IN projects}
Project: {project.name} - Status: {project.status}
{END-FOR}
*/

הקשר JavaScript מותאם (EXEC)

אחת מהתכונות המתקדמות ביותר של ספריית Docx-Templates היא היכולת להריץ קטעי JavaScript שרירותיים באמצעות הפקודה EXEC (או !). על ידי אספקת additionalJsContext, ניתן לחשוף פונקציות עזר מותאמות לתבנית. זה מאפשר לתבנית לבצע חישובים, לעצב תאריכים, או לתפעל מחרוזות פנימית מבלי צורך לעבד מראש כל פריט נתונים בלוגיקה המרכזית של היישום שלך.

 עִברִית