ফ্রি C++ API মাধ্যমে ডাইনামিক Word DOCX ফাইল তৈরি
ওপেন সোর্স C++ DOCX লাইব্রেরি যা C++ কোড থেকে সরাসরি Word ডকুমেন্ট (.docx ফরম্যাট) তৈরি করে। এটি টেবিল ও ছবি যোগ করা, টেক্সটে ফরম্যাট ও স্টাইল প্রয়োগ করা এবং আরও অনেক কিছু করার সুযোগ দেয়।
MiniDocx কী?
DocxFactory একটি শক্তিশালী, ক্রস-প্ল্যাটফর্ম ওপেন-সোর্স C++ লাইব্রেরি, যা টেমপ্লেট-ভিত্তিক ডকুমেন্ট তৈরি মাধ্যমে Microsoft Word DOCX ফাইল (OpenXML ফরম্যাট) তৈরির জন্য ডিজাইন করা হয়েছে। এই ফ্রি লাইব্রেরি C#, Java, Python, এবং Progress 4GL সহ একাধিক প্রোগ্রামিং ভাষার জন্য র্যাপার এবং কমান্ড লাইন টুল সরবরাহ করে। DocxFactory-কে আলাদা করে তোলার কারণ এর টেমপ্লেট-ড্রিভেন পদ্ধতি, যা ডেভেলপারদের জটিল OpenXML ফাইল ফরম্যাট বুঝতে হওয়া প্রয়োজন বাদ দেয়। লাইব্রেরিতে বিভিন্ন গুরুত্বপূর্ণ ওয়ার্ড প্রোসেসিং ফিচারের সাপোর্ট রয়েছে, যেমন টেমপ্লেট-ভিত্তিক ডকুমেন্ট জেনারেশন, প্যারাগ্রাফ বা ইমেজ ইনসার্ট/রিমুভ, টেক্সট ফরম্যাটিং, টেবিলের সঙ্গে কাজ, সেল মার্জ বা স্প্লিট, তালিকা ব্যবস্থাপনা, বহু-ভাষা সমর্থন, বিস্তৃত বারকোড সমর্থন, একাধিক আউটপুট ফরম্যাট সমর্থন ইত্যাদি।
DocxFactory একটি পরিণত, ফ্রি, ক্রস-প্ল্যাটফর্ম C/C++ লাইব্রেরি (বহু-ভাষার র্যাপার সহ), যা Microsoft Word .docx ফাইলের সঙ্গে কাজকে সহজ করে। লাইব্রেরিটি ক্রস-প্ল্যাটফর্ম এবং প্রধান অপারেটিং সিস্টেম (Windows, UNIX/Linux) এ মসৃণভাবে কাজ করে — সার্ভার, ডেস্কটপ বা এমবেডেড সিস্টেমে ডিপ্লয় করার জন্য নমনীয়তা প্রদান করে। লাইব্রেরিটি Apache 2.0 লাইসেন্সের অধীনে, যা ব্যক্তিগত ও বাণিজ্যিক উভয় ব্যবহারের জন্য কোনও ফিচার সীমাবদ্ধতা বা সময়সীমা ছাড়া পুরোপুরি বিনামূল্যে। আপনি যদি এন্টারপ্রাইজ রিপোর্টিং সিস্টেম, স্বয়ংক্রিয় ডকুমেন্ট ওয়ার্কফ্লো, বা সহজ মেইল মার্জ অ্যাপ্লিকেশন তৈরি করছেন, DocxFactory পেশাদার ডকুমেন্ট দক্ষতার সঙ্গে তৈরি করার জন্য প্রয়োজনীয় টুল সরবরাহ করে।
MiniDocx দিয়ে শুরু করা
MiniDocx ইনস্টল করার সুপারিশকৃত উপায় হল GitHub থেকে। মসৃণ ইনস্টলেশনের জন্য দয়া করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।
GitHub দিয়ে MiniDocx ইনস্টল করুন
git clone git@github.com:totravel/minidocx.git
cd minidocx You can also download it directly from Aspose product page.C++ মাধ্যমে Word Docx ডকুমেন্ট তৈরি
ওপেন-সোর্স MiniDocx লাইব্রেরি সফটওয়্যার ডেভেলপারদের জন্য C++ অ্যাপ্লিকেশনের মধ্যে Word Docx ডকুমেন্ট তৈরি ও পরিচালনা করা সহজ করে তোলে। লাইব্রেরিটি Word ডকুমেন্টের মধ্যে ফরম্যাটিং প্রয়োগ, টেক্সট, টেবিল এবং ছবি যোগ করার সাপোর্ট অন্তর্ভুক্ত করেছে। MiniDocx বোঝার সবচেয়ে সহজ উপায় হল একটি ব্যবহারিক উদাহরণে। ফরম্যাটেড টেক্সটসহ একটি মৌলিক Word ডকুমেন্ট তৈরি করা লাইব্রেরির স্বজ্ঞাত API ডিজাইন এবং সরল ওয়ার্কফ্লো প্রদর্শন করে।
C++ লাইব্রেরি ব্যবহার করে Word ডকুমেন্ট কীভাবে তৈরি করবেন?
#include "minidocx/minidocx.hpp"
#include
int main()
{
using namespace md;
try {
Document doc;
SectionPointer sect = doc.addSection();
ParagraphPointer para = sect->addParagraph();
para->prop_.align_ = Alignment::Centered;
RichTextPointer rich = para->addRichText("Happy Chinese New Year!");
rich->prop_.fontSize_ = 32;
rich->prop_.color_ = "FF0000";
doc.saveAs("a.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}
C++ লাইব্রেরি দিয়ে ডকুমেন্টে টেবিল যোগ করুন
টেবিলগুলি Word ডকুমেন্টে গঠিত ডেটা উপস্থাপনের জন্য অপরিহার্য, এবং MiniDocx সম্পূর্ণ টেবিল তৈরি এবং ফরম্যাটিং সক্ষমতা প্রদান করে। টেবিলগুলি সারি ও সেল নিয়ে গঠিত, যেখানে প্রতিটি সেল টেক্সট, ফরম্যাটিং এবং এমনকি নেস্টেড কনটেন্ট রাখতে পারে। টেবিল তৈরি করতে কয়েকটি ধাপ রয়েছে: টেবিলের কাঠামো নির্ধারণ, সারি যোগ করা, সেলে কনটেন্ট পূরণ করা, এবং ফরম্যাটিং প্রয়োগ করা। নিচে একটি বিশদ উদাহরণ রয়েছে যা দেখায় কিভাবে সফটওয়্যার ডেভেলপাররা C++ অ্যাপে ফরম্যাটেড টেবিল তৈরি করতে পারেন।
C++ লাইব্রেরি দিয়ে Word ডকুমেন্টে ফরম্যাটেড টেবিল কীভাবে তৈরি করবেন?
#include "minidocx/minidocx.hpp"
int main()
{
using namespace md;
try {
Document doc;
SectionPointer sect = doc.addSection();
// Create a table with 3 rows and 2 columns
TablePointer table = sect->addTable(3, 2);
// Access and populate cells
// First row - header
auto cell00 = table->cell(0, 0);
auto para00 = cell00->addParagraph();
auto text00 = para00->addRichText("Name");
text00->prop_.bold_ = true;
auto cell01 = table->cell(0, 1);
auto para01 = cell01->addParagraph();
auto text01 = para01->addRichText("Age");
text01->prop_.bold_ = true;
// Second row
auto cell10 = table->cell(1, 0);
auto para10 = cell10->addParagraph();
para10->addRichText("Alice");
auto cell11 = table->cell(1, 1);
auto para11 = cell11->addParagraph();
para11->addRichText("25");
// Third row
auto cell20 = table->cell(2, 0);
auto para20 = cell20->addParagraph();
para20->addRichText("Bob");
auto cell21 = table->cell(2, 1);
auto para21 = cell21->addParagraph();
para21->addRichText("30");
doc.saveAs("table_document.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}
Word DOCX ফাইলে ছবি ও চিত্র সন্নিবেশ করুন
ভিজ্যুয়াল কনটেন্ট ডকুমেন্টের পাঠযোগ্যতা এবং আকর্ষণ বাড়ায়, ফলে ইমেজ সাপোর্ট যেকোনো ডকুমেন্ট জেনারেশন লাইব্রেরির জন্য গুরুত্বপূর্ণ ফিচার। MiniDocx সফটওয়্যার ডেভেলপারদেরকে ডকুমেন্টে ইমেজ সন্নিবেশের সময় সাইজ এবং পজিশনিং নিয়ন্ত্রণের সুযোগ দেয়। ডকুমেন্টে ইিমেজ যোগ করার জন্য ইমেজ ফাইলের পাথ নির্ধারণ এবং ঐচ্ছিকভাবে ডাইমেনশন সেট করা প্রয়োজন। নিচে একটি উদাহরণ দেয়া হয়েছে যা C++ লাইব্রেরি দিয়ে Word ডকুমেন্টে ইমেজ সন্নিবেশ দেখায়।
C++ লাইব্রেরি দিয়ে Word ডকুমেন্টে চিত্র কীভাবে সন্নিবেশ করবেন?
#include "minidocx/minidocx.hpp"
int main()
{
using namespace md;
try {
Document doc;
SectionPointer sect = doc.addSection();
// Add a paragraph before the image
ParagraphPointer para1 = sect->addParagraph();
para1->addRichText("Below is an important diagram:");
// Add a paragraph containing the image
ParagraphPointer para2 = sect->addParagraph();
para2->prop_.align_ = Alignment::Centered;
// Insert the picture
PicturePointer pic = para2->addPicture("path/to/image.png");
pic->prop_.width_ = 400;
pic->prop_.height_ = 300;
// Add a paragraph after the image
ParagraphPointer para3 = sect->addParagraph();
para3->addRichText("Figure 1: Important visualization");
doc.saveAs("document_with_image.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}
ডকুমেন্ট সেকশন এবং পেজ লে-আউট
সেকশনগুলি Word ডকুমেন্টের মধ্যে পেজ লে-আউট প্রপার্টি নিয়ন্ত্রণের জন্য ফ্রেমওয়ার্ক প্রদান করে। প্রতিটি সেকশনের ভিন্ন পেজ সেটিংস থাকতে পারে, যেমন পেজ সাইজ, অরিয়েন্টেশন, মার্জিন, হেডার এবং ফুটার। এই সেকশন-ভিত্তিক আর্কিটেকচার ভিন্ন পেজ কনফিগারেশনের মাধ্যমে জটিল ডকুমেন্ট লে-আউটের সুযোগ দেয়। একাধিক সেকশনের সাধারণ ব্যবহার হল উভয়ই পোর্ট্রেট এবং ল্যান্ডস্কেপ পেজসহ ডকুমেন্ট তৈরি করা, যেমন প্রশস্ত টেবিল বা চার্টের জন্য ল্যান্ডস্কেপ অরিয়েন্টেশন প্রয়োজনীয় রিপোর্ট। নিচে একটি উদাহরণ দেখানো হয়েছে কীভাবে C++ অ্যাপ্লিকেশনের ভিতরে Word ডকুমেন্টের একাধিক সেকশনের সঙ্গে কাজ করা যায়।
C++ লাইব্রেরি দিয়ে Word ডকুমেন্টের একাধিক সেকশনের সাথে কীভাবে কাজ করবেন?
#include "minidocx/minidocx.hpp"
int main()
{
using namespace md;
try {
Document doc;
// First section with portrait orientation
SectionPointer sect1 = doc.addSection();
sect1->prop_.orientation_ = Orientation::Portrait;
sect1->prop_.pageWidth_ = 8.5 * 1440; // Letter size in twips
sect1->prop_.pageHeight_ = 11 * 1440;
ParagraphPointer para1 = sect1->addParagraph();
para1->addRichText("This is content in portrait orientation.");
// Second section with landscape orientation
SectionPointer sect2 = doc.addSection();
sect2->prop_.orientation_ = Orientation::Landscape;
sect2->prop_.pageWidth_ = 11 * 1440;
sect2->prop_.pageHeight_ = 8.5 * 1440;
ParagraphPointer para2 = sect2->addParagraph();
para2->addRichText("This content appears in landscape orientation.");
doc.saveAs("multi_section_document.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}