ایجاد فایلهای Word پویا از قالب با API رایگان روبی
کتابخانه پیشرو منبعباز روبی که برای ایجاد اسناد پویا Microsoft Word (.docx) از قالبهای پیشطراحیشده طراحی شده است.
Ruby-Docx-Templater چیست؟
تولید اسناد پویا Microsoft Word (.docx) از یک برنامه روبی میتواند کاری بهقدری پیچیده باشد که تعجبآور است. ممکن است نیاز به تولید گزارشها، فاکتورها یا نامههایی داشته باشید که کاربران غیر فنی آنها را طراحی کردهاند. در حالی که راهحلهای متعددی وجود دارد، آنها اغلب به وابستگیهای سنگینی مانند LibreOffice یا نصب محلی Word نیاز دارند. در اینجا Ruby-Docx-Templater وارد میشود؛ یک جِم سبک وزن که رویکرد متفاوتی دارد. این امکان را میدهد تا از یک فایل .docx استاندارد بهعنوان قالب استفاده کنید و آن را بهصورت کامل در حافظه دستکاری کنید تا دادههای خود را درون آن تزریق کنید. این ویژگی باعث میشود که این گزینه برای هر توسعهدهنده روبی سریع، ایمن و مناسب برای استقرار باشد.
در هسته خود، کتابخانه Ruby-Docx-Templater یک موتور قالبسازی مخصوص فایلهای .docx است. این یک جِم سبک وزن و قدرتمند روبی است که برای ایجاد اسناد پویا Microsoft Word (.docx) از قالبهای پیشطراحیشده طراحی شده است. این کار با استفاده از یک سیستم ساده مبتنی بر تگها در داخل یک سند Word استاندارد انجام میشود. شما یک قالب در Word ایجاد میکنید، تگهای ویژهای را در مکانهایی که میخواهید محتوای پویا ظاهر شود قرار میدهید، سپس جِم این تگها را با دادههای واقعی از برنامه روبی شما جایگزین میکند. پردازش مبتنی بر حافظه، پشتیبانی از ساختارهای جدول پیچیده و حفظ قالببندی، آن را برای خودکارسازی اسناد تجاری ایدهآل میسازد.
شروع کار با 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-Docx-Templater جایگزینی متن ساده است. میتوانید جاینگهدارها را در هرجایی از سند Word خود قرار دهید و کتابخانه آنها را با مقادیر واقعی جایگزین میکند. زیبایی این روش این است که قالببندی حفظ میشود. اگر در قالب خود $COMPANY_NAME$ را به صورت بولد و قرمز کنید، در خروجی نیز به همان صورت بولد و قرمز خواهد ماند. این به طراحان کنترل کامل بر ظاهر سند میدهد. در قالب Word خود، کلیدها را با سینتکس $KEY$ تعریف میکنید. علامتهای دلاری به عنوان جداکننده عمل میکنند و نشان میدهند جایگزینیها کجا باید انجام شود.
ایجاد فایل Word Docx با استفاده از فایل قالب از طریق روبی؟
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 با استفاده از کتابخانه روبی ایجاد کنیم؟
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 بسیار آسان برای استفاده است و از پردازش مبتنی بر حافظه درون برنامههای روبی پشتیبانی میکند. تمام دستکاریهای سند در حافظه انجام میشود، به این معنی که دادههای حساس شما در طول فرآیند قالبسازی هرگز به سیستم فایل دسترسی ندارند. این برای برنامههایی که با اطلاعات محرمانه مانند سوابق پزشکی، اسناد مالی یا دادههای شخصی سر و کار دارند، حیاتی است.
کار با XML ورد
یک جنبه منحصربهفرد Ruby-Docx-Templater این است که گاهی نیاز است XML زیرساختی سند Word خود را بهصورت دستی ویرایش کنید. Word اغلب علامتگذاری قالببندی را وارد میکند که میتواند کلیدهای قالب شما را تقسیم کند و فرآیند جایگزینی را خراب کند. وقتی $CUSTOMER_NAME$ را در Word تایپ میکنید، ممکن است روی صفحه صحیح به نظر برسد، اما XML زیرین ممکن است به این شکل باشد.