ایجاد اسناد Word در C++

Aspose.Words مجموعه‌ای از ویژگی‌های API است که به شما امکان می‌دهد اسناد MS Word را به صورت برنامه‌نویسی ایجاد، ویرایش و تبدیل کنید. طیف گسترده ای از ویژگی های اساسی و همچنین پیشرفته را برای دستکاری اسناد پردازش کلمه ارائه می دهد. در این مقاله، نحوه استفاده از Aspose.Words برای C++ و ایجاد اسناد MS Word از ابتدا با استفاده از C++ را خواهید آموخت. راهنمای گام به گام و همچنین نمونه کد به شما امکان می دهد تا نحوه درج متن، تصاویر، جداول، لیست ها و سایر عناصر را در اسناد Word بدانید.

C++ API برای ایجاد اسناد MS Word

Aspose.Words for C++ به شما امکان می دهد اسناد پردازش کلمه را در برنامه های C++ بدون MS Word ایجاد و دستکاری کنید. می‌توانید با استفاده از NuGet با دستور زیر، API را دانلود یا در برنامه‌های ++C خود نصب کنید.

PM> Install-Package Aspose.Words.Cpp

با استفاده از C++ اسناد MS Word ایجاد کنید

بیایید ابتدا یک سند Word ساده ایجاد کنیم و آن را به عنوان یک فایل .doc یا .docx ذخیره کنیم. برای این کار باید مراحل زیر را دنبال کنید:

  • با استفاده از کلاس Document یک سند Word خالی ایجاد کنید.
  • یک شی از کلاس DocumentBuilder برای افزودن محتوا به سند ایجاد کنید.
  • متن را با استفاده از روش DocumentBuilder->Writeln() اضافه کنید.
  • با استفاده از روش Document->Save() سند را به صورت فایل .doc یا .docx ذخیره کنید.

نمونه کد زیر نحوه ایجاد یک سند Word DOCX با استفاده از C++ را نشان می دهد.

// مقداردهی اولیه یک سند
System::SharedPtr<Document> doc = System::MakeObject<Document>();
// از یک سازنده سند برای افزودن محتوا به سند استفاده کنید.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// متن اضافه کنید
builder->Writeln(u"Hello World!"); 
// سند را روی دیسک ذخیره کنید.
doc->Save(u"document.docx");

Word DOC/DOCX موجود را با استفاده از C++ ویرایش یا به‌روزرسانی کنید

همچنین می توانید اسناد Word موجود را با استفاده از Aspose.Words برای C++ ویرایش کنید. برای این کار، API از Document Object Model (DOM) برای نمایش یک سند در حافظه استفاده می کند. DOM به شما امکان می‌دهد به عناصر یک سند Word مانند سرصفحه/پانویس، پاراگراف‌ها، جداول و غیره دسترسی داشته باشید. اطلاعات بیشتر در مورد DOM را اینجا بخوانید.

برای به روز رسانی یک سند Word، به سادگی آن را با استفاده از کلاس Document بارگذاری کنید و آن را به دلخواه پردازش کنید. مراحل زیر برای ویرایش و به روز رسانی یک سند Word موجود است.

  • سند Word را با استفاده از کلاس Document بارگیری کنید.
  • یک شی از کلاس DocumentBuilder برای دسترسی به محتوا ایجاد کنید.
  • به پاراگراف مورد نظر (یا هر عنصر دیگر) دسترسی پیدا کنید و محتوا را به روز کنید.
  • سند به روز شده را با استفاده از روش Document->Save() ذخیره کنید.

نمونه کد زیر نحوه به روز رسانی متن یک پاراگراف در یک سند Word را با استفاده از C++ نشان می دهد.

// مقداردهی اولیه یک سند
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"document.docx");
// از یک سازنده سند برای افزودن محتوا به سند استفاده کنید.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// دریافت بخش
auto section = doc->get_Sections()->idx_get(0);
// بدن بگیر
auto body = section->get_Body();
// اولین پاراگراف را دریافت کنید
auto para = body->get_FirstParagraph();
// متن را به روز کنید
auto run = para->get_Runs()->idx_get(0);
run->set_Text(u"This is the updated text."); 
// سند را روی دیسک ذخیره کنید.
doc->Save(u"updated_document.docx");

درج تصاویر در سند Word با استفاده از C++

مراحل زیر برای درج یک تصویر در اسناد MS Word با استفاده از C++ است.

نمونه کد زیر نحوه درج یک تصویر را با استفاده از C++ در یک سند Word نشان می دهد.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); 
// یک لوگو به سمت چپ بالای صفحه اضافه کنید. تصویر در مقابل تمام متن های دیگر قرار می گیرد.
System::SharedPtr<Shape> shape = builder->InsertImage( u"Aspose Logo.png", RelativeHorizontalPosition::Page, 60.0, RelativeVerticalPosition::Page, 60.0, -1.0, -1.0, WrapType::None);
doc->Save(u"document_with_image.docx");

درج جدول در اسناد Word با استفاده از C++

جدول یکی از عناصر مهم اسناد Word برای نگهداری داده ها به صورت سطر و ستون است. به منظور ایجاد جدول در اسناد Word، مراحل زیر را دنبال کنید.

  • با استفاده از کلاس Document یک سند Word جدید ایجاد کنید.
  • یک شی از کلاس Table ایجاد کنید.
  • جدول را با استفاده از روش Document->getFirstSection()->getBody()->AppendChild() در سند وارد کنید.
  • با استفاده از کلاس Row یک ردیف جدید ایجاد کنید.
  • با استفاده از روش Table->AppendChild(row) ردیف را در جدول وارد کنید.
  • Cell را ایجاد و جدید کنید و متن را با استفاده از روش Cell->getFirstParagraph()->AppendChild() در آن وارد کنید.
  • با استفاده از روش Row->AppendChild() سلول را در ردیف قرار دهید.
  • فرآیند اضافه کردن چند ردیف را تکرار کنید.
  • سند را با استفاده از روش Document->Save() ذخیره کنید.

نمونه کد زیر نحوه درج جدول در سند Word با استفاده از C++ را نشان می دهد.

System::SharedPtr<Document> doc = System::MakeObject<Document>(); 
System::SharedPtr<Table> table = System::MakeObject<Table>(doc);
// جدول را به سند اضافه کنید.
doc->get_FirstSection()->get_Body()->AppendChild(table); 
System::SharedPtr<Row> row = System::MakeObject<Row>(doc);
row->get_RowFormat()->set_AllowBreakAcrossPages(true);
table->AppendChild(row);
// اکنون می‌توانیم تنظیمات مربوط به خودکار را اعمال کنیم.
table->AutoFit(AutoFitBehavior::FixedColumnWidths);
// یک سلول ایجاد کنید و آن را به ردیف اضافه کنید
System::SharedPtr<Cell> cell = System::MakeObject<Cell>(doc);
cell->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::get_LightBlue());
cell->get_CellFormat()->set_Width(80);
// یک پاراگراف به سلول و همچنین اجرای جدید با مقداری متن اضافه کنید.
cell->AppendChild(System::MakeObject<Paragraph>(doc));
cell->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 1 Text"));
// سلول را به ردیف اضافه کنید.
row->AppendChild(cell);
// سپس این فرآیند را برای سایر سلول‌ها و ردیف‌های جدول تکرار می‌کنیم.
// همچنین می‌توانیم با شبیه‌سازی سلول‌ها و ردیف‌های موجود، سرعت کار را افزایش دهیم.
row->AppendChild((System::StaticCast<Node>(cell))->Clone(false));
row->get_LastCell()->AppendChild(System::MakeObject<Paragraph>(doc));
row->get_LastCell()->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 2 Text"));
// سند را روی دیسک ذخیره کنید.
doc->Save(u"document_with_table.docx");

لیست ها را در اسناد Word با استفاده از C++ اضافه کنید

آخرین اما نه کم اهمیت ترین، ایجاد یک لیست در اسناد Word. مراحل زیر برای ایجاد لیست گلوله ارائه شده است.

  • با استفاده از کلاس Document یک سند Word جدید ایجاد کنید یا یک سند موجود را بارگیری کنید.
  • یک شی جدید DocumentBuilder تعریف کنید و آن را با شی Document مقداردهی اولیه کنید.
  • لیست را با استفاده از روش DocumentBuilder->getListFormat()->setList(Document->getLists()->Add(ListTemplate::NumberArabicDot)) ایجاد کنید.
  • لیست را پر کنید و سطح لیست را تنظیم کنید.
  • سند را به صورت فایل ذخیره کنید.

نمونه کد زیر نحوه ایجاد یک لیست در یک سند Word با استفاده از C++ را نشان می دهد.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// یک لیست شماره گذاری شده بر اساس یکی از قالب های لیست Microsoft Word ایجاد کنید و
// آن را به پاراگراف فعلی در سند ساز اعمال کنید.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::NumberArabicDot));
// در این لیست 9 سطح وجود دارد، بیایید همه آنها را امتحان کنیم.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// یک لیست گلوله ای بر اساس یکی از قالب های لیست Microsoft Word ایجاد کنید
// and آن را به پاراگراف فعلی در سند ساز اعمال کنید.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::BulletDiamonds));
// در این لیست 9 سطح وجود دارد، بیایید همه آنها را امتحان کنیم.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// این راهی برای توقف قالب بندی لیست است. 
builder->get_ListFormat()->set_List(nullptr); 
// سند را روی دیسک ذخیره کنید.
builder->get_Document()->Save(u"document_with_list.docx");

نتیجه

در این مقاله نحوه ایجاد اسناد MS Word از ابتدا با استفاده از C++ را مشاهده کرده اید. علاوه بر این، شما یاد گرفته اید که چگونه عناصری مانند متن، تصاویر، جداول و لیست ها را در اسناد Word جدید یا موجود وارد کنید. می‌توانید با استفاده از مستندات درباره ویژگی‌های پیشرفته API بیشتر کاوش کنید.

همچنین ببینید