ספריית Ruby בקוד פתוח לייצור קבצי Word DOCX

API Ruby חינמי וחזק המאפשר למפתחים ליצור מסמכי Word DOCX בקלות. הוא מאפשר לעצב את המסמך.'s Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.

מהי ספריית Sablon?

בעולם פיתוח התוכנה, יצירת מסמכים דינמיים כמו דוחות, חשבוניות או מכתבים היא דרישה נפוצה. בעוד שרבות הספריות יכולות ליצור מסמכים מאפס, הן לעיתים דורשות עקומת למידה תלולה וקידוד משעמם כדי לקבל את העיצוב המדויק. כאן נכנסת לתמונה Sablon, ספריית Ruby בקוד פתוח חזקה. Sablon משפרת את יצירת המסמכים על ידי ניצול המוכרות של Microsoft Word והכוח של Ruby, ומאפשרת ליצור מסמכים מורכבים ומעוצבים בצורה יפה עם מינימום מאמץ. היא תומכת בתכונות כמו יצירת Word Docx, הוספת תוכן באמצעות שדות MailMerge, תמיכה בעיצוב מתקדם, הוספת אנוטציות בתבניות, המרת HTML ו‑CSS בהתאמה ועוד רבים.

בגרעין, Sablon היא מעבד תבניות מסמכים לקבצי .docx. היא מנצלת את פונקציית Mail Merge המובנית של Word, ומאפשרת ליצור תבניות בסביבה מוכרת. ניתן לעצב את פריסת המסמך, להחיל סגנונות, ולהשתמש בשדות Mail Merge כממלאי מקום לתוכן דינמי. לאחר מכן Sablon לוקחת את התבנית ואת הקשר הנתונים (hash של Ruby) כדי לייצר מסמך Word מלא בנתונים. approach זה מבודד את שכבת ההצגה (תבנית ה‑Word) משכבת הנתונים (קוד ה‑Ruby שלך), מה שמפשט ומסדיר את תהליך יצירת המסמכים. תחבירה אינטואיטיבי לכל מי שמכיר Ruby ושפות תבנית. היא ידידותית למעצבים; התוכן והעיצוב מופרדים לחלוטין. מעצבים יכולים לעבוד ישירות ב‑Word מבלי לגעת בקוד.

Previous Next

התחלת עבודה עם Sablon

הדרך המומלצת להתקנת Sablon היא באמצעות RubyGems. אנא השתמשו בפקודה הבאה להתקנה חלקה.

התקנת מסמכים באמצעות RubyGems


gem 'sablon' 
You can also download it directly from GitHub.

הוספת תוכן עם שדות Word באמצעות Ruby

הפונקציה הבסיסית ביותר היא הוספת תוכן דינמי. ספריית Ruby בקוד פתוח Sablon משתמשת בתחביר השדות המובנה של Word כדי להגדיר מצייני מקום. בתבנית ה‑Word שלך, אתה מכניס קוד שדה במיקום שבו אתה רוצה תוכן דינמי. Sablon תחליף שדה זה בערך שלך. הדוגמה הבאה מציגה כיצד מפתחים יכולים להכניס באופן דינמי פיסת תוכן כדי לברך משתמש.

איך להכניס תוכן טקסט דינמי לקובץ Word באמצעות Ruby?

require 'sablon'

template = Sablon.template(File.expand_path('~/template.docx'))
context = {
  name: "Sarah Connor"
}

template.render_to_file(File.expand_path('~/output.docx'), context)

Template:

Hello, «name»! Welcome to our platform.

Output:
Hello, Sarah Connor! Welcome to our platform.

המרת HTML ל‑WordML

אחת התכונות הבולטות של Sablon היא היכולת שלה להמיר HTML ל‑WordProcessingML (פורמט ה‑XML המשמש קבצי .docx). זה שימושי מאוד כאשר יש צורך להכניס תוכן טקסט עשיר, כגון פסקאות מעוצבות, רשימות או טבלאות, ממסד נתונים או מעורך טקסט עשיר. Sablon תמיר מחרוזת HTML לחלק מעוצב כראוי במסמך Word, ותשמור על כותרות, טקסט מודגש ונטוי, ועיצוב רשימות. הנה דוגמה פשוטה שמדגימה איך לטעון תבנית קיימת ולהמיר את תוכן ה‑HTML לקובץ Word Docx בתוך יישומי Ruby.

איך להמיר תוכן HTML לקובץ Word Docx באמצעות ספריית Ruby?

require "sablon"

template = Sablon.template(File.expand_path("template.docx"))

html_content = "

זהו כותרת משנה

זהו פסקה עם טקסט מודגש ו‑נטוי.

  • פריט ראשון
  • פריט שני
" context = { article_content: Sablon.content(:html, html_content) } template.render_to_file(File.expand_path("output.docx"), context) Conditional Rendering

הוספת תמונה דינמית באמצעות Ruby

ספריית Sablon בקוד פתוח כוללת תכונה שימושית להוספת תמונה דינמית בתוך מסמכי Word Docx באמצעות ספריית Ruby. עם רק כמה שורות קוד, מפתחים יכולים להוסיף תמונות דינמית למסמכים שלהם. ניתן לציין קובץ תמונה, ו‑Sablon תכלול אותו במסמך. הדוגמה הבאה מציגה כיצד לבצע הוספת תמונה דינמית למסמכי Word.

How to Dynamically Insert Image into Word Docx via Ruby Library?


// You would have a placeholder image in your template with a special filename like «=company_logo».

context = {
  company_logo: Sablon.content(:image, "path/to/your/logo.png")
}

רינדור מותנה באמצעות Ruby

ספריית Sablon תומכת בחסימות מותנות, המאפשרות למשתמשים להציג או להסתיר חלקים במסמך ה‑Word שלהם בהתאם לנוכחות או ערך של משתנה. זה מושלם להתאמת מסמכים על פי תנאים ספציפיים. לדוגמה, הדוגמה הבאה מראה כיצד משתמשים יכולים להגדיר פקודות להסתיר או להציג מידע מסוים בתוך מסמך Word. אם show_extra_info הוא true, התוכן בין תגי if ל‑endIf יכלול במסמך הסופי. אם הוא false או nil, התוכן יוסר.

How to Display or Hide Parts of Word Docx Documents using Ruby?


context = {
  show_extra_info: true # or false
}
 עִברִית