Aspose.Words הוא אוסף עשיר בתכונות של ממשקי API המאפשרים לך ליצור, לערוך ולהמיר מסמכי MS Word באופן תכנותי. הוא מספק מגוון רחב של תכונות בסיסיות כמו גם מתקדמות לעיבוד מסמכי עיבוד תמלילים. במאמר זה תלמדו כיצד להשתמש ב-Aspose.Words for C++ וליצור מסמכי MS Word מאפס באמצעות C++. המדריך שלב אחר שלב וכן דוגמאות קוד יאפשרו לך לדעת כיצד להוסיף טקסט, תמונות, טבלאות, רשימות ואלמנטים אחרים במסמכי Word.
- C++ API לעיבוד תמלילים
- צור מסמכי MS Word באמצעות C++
- ערוך או עדכן MS Word DOC/DOCX קיים באמצעות C++
- הוסף תמונות במסמכי Word באמצעות C++
- הכנס טבלה במסמכי Word באמצעות C++
- הוסף רשימות במסמכי Word באמצעות C++
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 עבור 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 חדש או טען מסמך קיים באמצעות המחלקה Document.
- צור אובייקט DocumentBuilder ואתחול אותו עם אובייקט המסמך.
- הוסף תמונה באמצעות שיטת DocumentBuilder->InsertImage(String fileName, RelativeHorizontalPosition horzPos, double left, RelativeVerticalPosition vertPos, double top, double width, double height, WrapType wrapType).
- שמור את המסמך כקובץ Word.
דוגמת הקוד הבאה מראה כיצד להוסיף תמונה למסמך 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().
- צור שורה חדשה באמצעות המחלקה 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. להלן השלבים ליצירת רשימת תבליטים.
- צור מסמך Word חדש או טען מסמך קיים באמצעות המחלקה Document.
- הגדר אובייקט חדש 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 חדשים או קיימים. אתה יכול לחקור עוד על התכונות המתקדמות של ה-API באמצעות תיעוד.