إنشاء ملفات Word ديناميكية من قالب عبر واجهة برمجة تطبيقات Ruby مجانية
مكتبة روبي مفتوحة المصدر رائدة صممت لإنشاء مستندات Microsoft Word (.docx) ديناميكية من قوالب مصممة مسبقًا.
ما هو Ruby-Docx-Templater؟
إنشاء مستندات Microsoft Word ديناميكية (.docx) من تطبيق Ruby يمكن أن يكون مهمة أكثر تعقيدًا مما تبدو. قد تحتاج إلى إنشاء تقارير أو فواتير أو رسائل صممها مستخدمون غير تقنيين. بينما توجد العديد من الحلول، غالبًا ما تتطلب تبعيات ثقيلة مثل LibreOffice أو تثبيت Word محلي. هنا يأتي Ruby-Docx-Templater، جيم خفيف الوزن يتبع نهجًا مختلفًا. يسمح للمستخدمين باستخدام ملف .docx قياسي كقالب، معالجته بالكامل في الذاكرة لإدخال بياناتهم. يجعل ذلك منه خيارًا سريعًا، آمنًا، وصديقًا للنشر لأي مطور Ruby.
في جوهره، مكتبة Ruby-Docx-Templater هي محرك قوالب مخصص لملفات .docx. إنها جيم روبي خفيف الوزن وقوي صمم لإنشاء مستندات Microsoft Word (.docx) ديناميكية من قوالب مصممة مسبقًا. يعمل عن طريق استخدام نظام بسيط يعتمد على العلامات داخل مستند Word قياسي. تقوم بإنشاء قالب في Word، وتضع علامات خاصة حيث تريد ظهور المحتوى الديناميكي، ثم يسمح للجيم باستبدال تلك العلامات بالبيانات الفعلية من تطبيق Ruby الخاص بك. معالجته القائمة على الذاكرة، ودعمه لهياكل الجداول المعقدة، والحفاظ على التنسيق يجعله مثاليًا لأتمتة مستندات الأعمال.
البدء مع Ruby-Docx-Templater
الطريقة الموصى بها لتثبيت Ruby-Docx-Templater هي باستخدام RubyGems. يرجى استخدام الأمر التالي لتثبيت سلس.
تثبيت Ruby-Docx-Templater عبر RubyGems
gem install ruby-docx-templater تثبيت Ruby-Docx-Templater عبر GitHub
git clone https://github.com/jawspeak/ruby-docx-templater.git You can also download it directly from GitHub.إنشاء ملف Word Docx من قالب عبر Ruby
أبسط ميزة في Ruby-Docx-Templater هي استبدال النص البسيط. يمكنك وضع نواقل (placeholders) في أي مكان داخل مستند Word، وستقوم المكتبة باستبدالها بالقيم الفعلية. جمال هذا النهج هو أن التنسيق يُحافظ عليه. إذا جعلت $COMPANY_NAME$ عريضًا وأحمر في القالب، سيبقى عريضًا وأحمر في الناتج. هذا يمنح المصممين سيطرة كاملة على مظهر المستند. في قالب Word الخاص بك، تقوم بتعريف المفاتيح باستخدام صيغة $KEY$. علامات الدولار تعمل كفواصل، مما يجعل من الواضح أين يجب أن تحدث الاستبدالات.
إنشاء ملف Word Docx باستخدام ملف قالب عبر Ruby؟
require 'docx_templater'
# Load your template file
doc = DocxTemplater::TemplateProcessor.new('invoice_template.docx')
# Define your data as a hash
data = {
'COMPANY_NAME' => 'Acme Corporation',
'INVOICE_NUMBER' => 'INV-2024-001',
'INVOICE_DATE' => '2024-11-04',
'CLIENT_NAME' => 'John Smith',
'TOTAL_AMOUNT' => '$1,250.00'
}
# Render the document with your data
doc.render(data)
# Save the output
doc.save('output_invoice.docx')
دعم حلقات الجداول متعددة الصفوف
إحدى أقوى الميزات هي القدرة على إنشاء جداول ديناميكية متعددة الصفوف. هذا أمر أساسي لإنشاء قوائم مفصلة في الفواتير، كتالوجات المنتجات، أو أي تقرير يحتوي على بيانات مكررة. تحدد منطقة حلقة في جدولك وستقوم المكتبة بتكرار كل ما بين هذه العلامات لكل عنصر في مصفوفة البيانات الخاصة بك. يمكنك تنسيق كل خلية على حدة في Word. على سبيل المثال، قد تقوم بمحاذاة الأرقام إلى اليمين، جعل العناوين عريضة، أو تطبيق خطوط محددة. سيُحافظ على جميع التنسيقات في الصفوف المولدة.
كيفية إنشاء تقرير منتج متعدد الصفوف بصيغة Docx عبر مكتبة Ruby؟
require 'docx_templater'
doc = DocxTemplater::TemplateProcessor.new('product_report.docx')
# Define items as an array of hashes
data = {
'REPORT_TITLE' => 'Monthly Sales Report',
'REPORT_DATE' => 'November 2024',
'ITEMS_LIST' => [
{
'PRODUCT_NAME' => 'Laptop Pro 15"',
'QUANTITY' => '5',
'UNIT_PRICE' => '$1,200.00',
'TOTAL' => '$6,000.00'
},
{
'PRODUCT_NAME' => 'Wireless Mouse',
'QUANTITY' => '12',
'UNIT_PRICE' => '$25.00',
'TOTAL' => '$300.00'
},
{
'PRODUCT_NAME' => 'USB-C Cable',
'QUANTITY' => '20',
'UNIT_PRICE' => '$15.00',
'TOTAL' => '$300.00'
}
]
}
doc.render(data)
doc.save('output_sales_report.docx')
المعالجة القائمة على الذاكرة
مكتبة Ruby-Docx-Templater المفتوحة المصدر سهلة التعامل وتدعم المعالجة القائمة على الذاكرة داخل تطبيقات Ruby. يتم جميع تعديل المستندات في الذاكرة، مما يعني أن بياناتك الحساسة لا تلامس نظام الملفات أثناء عملية القالب. وهذا أمر حاسم للتطبيقات التي تتعامل مع معلومات سرية مثل السجلات الطبية، المستندات المالية، أو البيانات الشخصية.
العمل مع Word XML
جانب فريد من نوعه في Ruby-Docx-Templater هو أنك قد تحتاج أحيانًا إلى تعديل XML الأساسي لمستند Word يدويًا. غالبًا ما يضيف Word علامات تنسيق قد تقسم مفاتيح القالب، مما يُعطل عملية الاستبدال. عندما تكتب $CUSTOMER_NAME$ في Word، قد يبدو صحيحًا على الشاشة، لكن XML الأساسي قد يظهر هكذا.