إنشاء مستندات Word في C++

Aspose.Words عبارة عن مجموعة غنية بالميزات من واجهات برمجة التطبيقات تتيح لك إنشاء مستندات MS Word وتحريرها وتحويلها برمجيًا. يوفر مجموعة واسعة من الميزات الأساسية وكذلك المتقدمة لمعالجة مستندات معالجة الكلمات. في هذه المقالة ، ستتعلم كيفية استخدام Aspose.Words for C++ وإنشاء مستندات MS Word من البداية باستخدام C++. سيسمح لك الدليل التدريجي بالإضافة إلى نماذج التعليمات البرمجية بمعرفة كيفية إدراج النص والصور والجداول والقوائم والعناصر الأخرى في مستندات Word.

C++ API لإنشاء مستندات MS Word

يتيح لك Aspose.Words for C++ إنشاء مستندات معالجة النصوص ومعالجتها داخل تطبيقات C++ بدون برنامج MS Word. يمكنك تنزيل API أو تثبيته داخل تطبيقات C++ باستخدام NuGet باستخدام الأمر التالي.

PM> Install-Package Aspose.Words.Cpp

قم بإنشاء مستندات MS Word باستخدام C++

لنقم أولاً بإنشاء مستند Word بسيط وحفظه كملف .doc أو .docx. لهذا ، عليك اتباع الخطوات التالية:

  • قم بإنشاء مستند Word فارغ باستخدام فئة Document.
  • قم بإنشاء كائن من فئة DocumentBuilder لإضافة محتوى إلى المستند.
  • أضف نصًا باستخدام طريقة DocumentBuilder-> Writeln().
  • احفظ المستند كملف .doc أو .docx باستخدام طريقة Document-> Save().

يُظهر نموذج التعليمات البرمجية التالي كيفية إنشاء مستند 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 for C++. لهذا الغرض ، تستخدم API نموذج كائن المستند (DOM) للتمثيل في الذاكرة للمستند. يتيح لك DOM الوصول إلى عناصر مستند Word مثل الرأس / التذييل والفقرات والجداول وما إلى ذلك. اقرأ المزيد عن DOM هنا.

لتحديث مستند Word ، ما عليك سوى تحميله باستخدام فئة Document ومعالجته حسب الرغبة. فيما يلي خطوات تحرير مستند Word الموجود وتحديثه.

  • قم بتحميل مستند Word باستخدام فئة مستند.
  • قم بإنشاء كائن من فئة 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++.

يُظهر نموذج التعليمات البرمجية التالي كيفية إدراج صورة في مستند Word باستخدام C++.

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 ، اتبع الخطوات التالية.

  • قم بإنشاء مستند Word جديد باستخدام فئة Document.
  • قم بإنشاء كائن من فئة جدول.
  • قم بإدراج الجدول في المستند باستخدام طريقة Document-> getFirstSection() -> getBody() -> AppendChild().
  • قم بإنشاء صف جديد باستخدام فئة صف.
  • أدخل صفًا في الجدول باستخدام طريقة Table-> AppendChild (صف).
  • قم بإنشاء خلية جديدة وإدراج نص فيها باستخدام طريقة 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. فيما يلي خطوات إنشاء قائمة ذات تعداد نقطي.

  • قم بإنشاء مستند Word جديد أو تحميل مستند موجود باستخدام فئة المستند.
  • حدد كائنًا جديدًا DocumentBuilder وقم بتهيئته باستخدام كائن المستند.
  • قم بإنشاء قائمة باستخدام طريقة 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 الجديدة أو الموجودة. يمكنك استكشاف المزيد حول الميزات المتقدمة لواجهة برمجة التطبيقات باستخدام التوثيق.

أنظر أيضا