ফ্রি রুবি API ব্যবহার করে টেমপ্লেট থেকে ডাইনামিক Word ফাইল তৈরি করুন
প্রধান ওপেন সোর্স রুবি লাইব্রেরি, যা পূর্ব-ডিজাইন করা টেমপ্লেট থেকে ডাইনামিক Microsoft Word (.docx) ডকুমেন্ট তৈরির জন্য ডিজাইন করা হয়েছে।
Ruby-Docx-Templater কী?
রুবি অ্যাপ্লিকেশন থেকে ডাইনামিক Microsoft Word ডকুমেন্ট (.docx) তৈরি করা অপ্রত্যাশিতভাবে জটিল কাজ হতে পারে। আপনাকে রিপোর্ট, ইনভয়েস, অথবা এমন চিঠি তৈরি করতে হতে পারে যা নন-টেকনিক্যাল ইউজাররা ডিজাইন করেছে। যদিও অনেক সমাধান আছে, সেগুলি প্রায়ই LibreOffice বা লোকাল Word ইন্সটলেশনের মতো ভারী ডিপেনডেন্সি প্রয়োজন করে। এখানেই আসে Ruby-Docx-Templater, একটি হালকা gem যা ভিন্ন পদ্ধতি গ্রহণ করে। এটি ব্যবহারকারীদেরকে একটি স্ট্যান্ডার্ড .docx ফাইলকে টেমপ্লেট হিসেবে ব্যবহার করতে দেয়, সম্পূর্ণভাবে মেমরিতে তা ম্যানিপুলেট করে তাদের ডেটা ইনজেক্ট করতে। এইভাবে এটি যেকোনো রুবি ডেভেলপারের জন্য দ্রুত, সুরক্ষিত এবং ডিপ্লয়মেন্ট-ফ্রেন্ডলি অপশন হয়ে ওঠে।
মূলত Ruby-Docx-Templater লাইব্রেরি হল .docx ফাইলের জন্য বিশেষভাবে তৈরি একটি টেমপ্লেটিং ইঞ্জিন। এটি একটি হালকা, শক্তিশালী রুবি gem, যা পূর্ব-ডিজাইন করা টেমপ্লেট থেকে ডাইনামিক Microsoft Word (.docx) ডকুমেন্ট তৈরি করতে ডিজাইন করা হয়েছে। এটি একটি স্ট্যান্ডার্ড Word ডকুমেন্টের মধ্যে সহজ ট্যাগ-ভিত্তিক সিস্টেম ব্যবহার করে কাজ করে। আপনি Word-এ একটি টেমপ্লেট তৈরি করেন, যেখানে ডাইনামিক কন্টেন্ট দরকার সেখানে বিশেষ ট্যাগ বসান, এবং তারপর gem আপনার রুবি অ্যাপ্লিকেশন থেকে আসা আসল ডেটা দিয়ে সেই ট্যাগগুলো প্রতিস্থাপন করে। এর মেমরি-ভিত্তিক প্রসেসিং, জটিল টেবিল স্ট্রাকচারের সাপোর্ট এবং ফরম্যাটিং সংরক্ষণ এটিকে ব্যবসায়িক ডকুমেন্ট অটোমেশনের জন্য আদর্শ করে তোলে।
Ruby-Docx-Templater দিয়ে শুরু করা
Ruby-Docx-Templater ইনস্টল করার সুপারিশকৃত পদ্ধতি হল RubyGems ব্যবহার করা। মসৃণ ইনস্টলেশনের জন্য নিম্নলিখিত কমান্ড ব্যবহার করুন।
RubyGems দ্বারা Ruby-Docx-Templater ইনস্টল করুন
gem install ruby-docx-templater GitHub থেকে Ruby-Docx-Templater ইনস্টল করুন
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-এ প্রতিটি সেল আলাদাভাবে ফরম্যাট করতে পারেন। উদাহরণস্বরূপ, সংখ্যা ডানদিকে অ্যালাইন করতে পারেন, হেডার বোল্ড করতে পারেন, অথবা নির্দিষ্ট ফন্ট প্রয়োগ করতে পারেন। সব ফরম্যাটিং জেনারেটেড রোতে সংরক্ষিত থাকবে।
Ruby লাইব্রেরি ব্যবহার করে 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 লাইব্রেরি রুবি অ্যাপ্লিকেশনের মধ্যে মেমরি-ভিত্তিক প্রসেসিং সমর্থন করে এবং ব্যবহার করা খুবই সহজ। সব ডকুমেন্ট ম্যানিপুলেশন মেমরিতে ঘটে, যার অর্থ টেমপ্লেটিং প্রক্রিয়ার সময় আপনার সংবেদনশীল ডেটা কখনোই ফাইল সিস্টেমে স্পর্শ করে না। এটি মেডিক্যাল রেকর্ড, আর্থিক ডকুমেন্ট বা ব্যক্তিগত ডেটার মতো গোপনীয় তথ্য নিয়ে কাজ করা অ্যাপ্লিকেশনের জন্য অত্যন্ত জরুরি।
Word XML এর সঙ্গে কাজ করা
Ruby-Docx-Templater-এর একটি অনন্য দিক হল কখনো কখনো আপনাকে আপনার Word ডকুমেন্টের আন্ডারলাইনিং XML ম্যানুয়াল এডিট করতে হতে পারে। Word প্রায়ই ফরম্যাটিং মার্কআপ ইনসার্ট করে, যা আপনার টেমপ্লেট কী ভাঙ্গে এবং প্রতিস্থাপন প্রক্রিয়া ভেঙে দেয়। যখন আপনি Word-এ $CUSTOMER_NAME$ টাইপ করেন, স্ক্রিনে তা সঠিক দেখাতে পারে, কিন্তু আন্ডারলাইনিং XML এমন হতে পারে।