نسخ فقرة وجزء في PPTX
Contents
[
Hide
]
لكي نقوم بتنسيق نص العرض التقديمي، نحتاج إلى تنسيقه على مستوى الفقرة والجزء.
بعض خصائص النص التي يمكن تعيينها على مستوى الفقرة وبعضها - على مستوى الجزء.
إذا كانت هناك فقرة أو جزء في النص نحتاج إلى نسخه إلى الفقرات أو الأجزاء المضافة حديثًا، نحتاج إلى نسخ جميع خصائص الفقرة أو الجزء المعني إلى الفقرة أو الجزء المضاف حديثًا.
نسخ الفقرة
يمكن الوصول إلى خصائص الفقرة من خلال مثيل ParagraphFormat من فئة Paragraph. نحتاج إلى نسخ جميع خصائص الفقرة المصدر إلى الفقرة الهدف. في المثال التالي، يتم مشاركة طريقة CopyParagraph التي تأخذ فقرة ليتم نسخها كوسيطة. تقوم نسخة بنسخ جميع خصائص الفقرة المصدر إلى فقرة مؤقتة وتعيد نفس الشيء. تحصل الفقرة الهدف على القيم المنسوخة.
SharedPtr<Paragraph> CopyParagraph(SharedPtr<IParagraph> par)
{
SharedPtr<Paragraph> para = MakeObject<Paragraph>();
SharedPtr<IParagraphFormatEffectiveData> paraData = par->get_ParagraphFormat()->GetEffective();
// استخدم ParagraphFormat لتعيين القيم
para->get_ParagraphFormat()->set_Alignment(paraData->get_Alignment());
para->get_ParagraphFormat()->set_DefaultTabSize(paraData->get_DefaultTabSize());
para->get_ParagraphFormat()->set_MarginLeft(paraData->get_MarginLeft());
para->get_ParagraphFormat()->set_MarginRight(paraData->get_MarginRight());
para->get_ParagraphFormat()->set_FontAlignment(paraData->get_FontAlignment());
para->get_ParagraphFormat()->set_Indent(paraData->get_Indent());
para->get_ParagraphFormat()->set_Depth(paraData->get_Depth());
para->get_ParagraphFormat()->set_SpaceAfter(paraData->get_SpaceAfter());
para->get_ParagraphFormat()->set_SpaceBefore(paraData->get_SpaceBefore());
para->get_ParagraphFormat()->set_SpaceWithin(paraData->get_SpaceWithin());
para->get_ParagraphFormat()->get_Bullet()->set_Type(paraData->get_Bullet()->get_Type());
para->get_ParagraphFormat()->get_Bullet()->set_Char(paraData->get_Bullet()->get_Char());
para->get_ParagraphFormat()->get_Bullet()->get_Color()->set_Color(paraData->get_Bullet()->get_Color()) ;
para->get_ParagraphFormat()->get_Bullet()->set_Height(paraData->get_Bullet()->get_Height()) ;
para->get_ParagraphFormat()->get_Bullet()->set_Font(paraData->get_Bullet()->get_Font());
para->get_ParagraphFormat()->get_Bullet()->set_NumberedBulletStyle(paraData->get_Bullet()->get_NumberedBulletStyle());
para->get_ParagraphFormat()->set_FontAlignment(paraData->get_FontAlignment()) ;
para->get_ParagraphFormat()->set_RightToLeft(paraData->get_RightToLeft() ? NullableBool::True : NullableBool::False);
para->get_ParagraphFormat()->set_EastAsianLineBreak(paraData->get_EastAsianLineBreak() ? NullableBool::True : NullableBool::False);
para->get_ParagraphFormat()->set_HangingPunctuation(paraData->get_HangingPunctuation() ? NullableBool::True : NullableBool::False);
return para;
}
نسخ الجزء
يمكن الوصول إلى خصائص الجزء من خلال مثيل PortionFormat من فئة Portion. نحتاج إلى نسخ جميع خصائص الجزء المصدر إلى الجزء الهدف. في المثال التالي، يتم مشاركة طريقة CopyPortion التي تأخذ جزءًا ليتم نسخه كوسيطة. تقوم نسخة بنسخ جميع خصائص الجزء المصدر إلى جزء مؤقت وتعيد نفس الشيء. يحصل الجزء الهدف على القيم المنسوخة.
SharedPtr<Portion> CopyPortion(SharedPtr<IPortion> por)
{
SharedPtr<Portion> temp = MakeObject<Portion>();
SharedPtr<IPortionFormatEffectiveData> portData = por->get_PortionFormat()->GetEffective();
// استخدم PortionFormat لتعيين القيم
temp->get_PortionFormat()->set_AlternativeLanguageId(portData->get_AlternativeLanguageId());
temp->get_PortionFormat()->set_BookmarkId(portData->get_BookmarkId()) ;
temp->get_PortionFormat()->set_Escapement(portData->get_Escapement()) ;
temp->get_PortionFormat()->get_FillFormat()->set_FillType(por->get_PortionFormat()->get_FillFormat()->get_FillType());
temp->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(portData->get_FillFormat()->get_SolidFillColor()) ;
temp->get_PortionFormat()->set_FontBold(portData->get_FontBold() ? NullableBool::True : NullableBool::False);
temp->get_PortionFormat()->set_FontHeight(portData->get_FontHeight());
temp->get_PortionFormat()->set_FontItalic(portData->get_FontItalic() ? NullableBool::True : NullableBool::False);
temp->get_PortionFormat()->set_FontUnderline(portData->get_FontUnderline());
temp->get_PortionFormat()->get_UnderlineFillFormat()->set_FillType(portData->get_UnderlineFillFormat()->get_FillType());
temp->get_PortionFormat()->get_UnderlineFillFormat()->get_SolidFillColor()->set_Color(portData->get_UnderlineFillFormat()->get_SolidFillColor());
temp->get_PortionFormat()->set_IsHardUnderlineFill(portData->get_IsHardUnderlineFill() ? NullableBool::True : NullableBool::False);
temp->get_PortionFormat()->set_IsHardUnderlineLine(portData->get_IsHardUnderlineLine() ? NullableBool::True : NullableBool::False);
temp->get_PortionFormat()->set_KerningMinimalSize(portData->get_KerningMinimalSize()) ;
temp->get_PortionFormat()->set_Kumimoji(portData->get_Kumimoji() ? NullableBool::True : NullableBool::False);
temp->get_PortionFormat()->set_LanguageId(portData->get_LanguageId());
temp->get_PortionFormat()->set_LatinFont(portData->get_LatinFont()) ;
temp->get_PortionFormat()->set_EastAsianFont(portData->get_EastAsianFont());
temp->get_PortionFormat()->set_ComplexScriptFont(portData->get_ComplexScriptFont());
temp->get_PortionFormat()->set_SymbolFont(portData->get_SymbolFont());
temp->get_PortionFormat()->set_TextCapType(portData->get_TextCapType());
temp->get_PortionFormat()->set_Spacing(portData->get_Spacing());
temp->get_PortionFormat()->set_StrikethroughType(portData->get_StrikethroughType());
temp->get_PortionFormat()->set_ProofDisabled(portData->get_ProofDisabled() ? NullableBool::True : NullableBool::False);
temp->get_PortionFormat()->set_NormaliseHeight(portData->get_NormaliseHeight() ? NullableBool::True : NullableBool::False);
temp->get_PortionFormat()->set_HyperlinkMouseOver(portData->get_HyperlinkMouseOver());
temp->get_PortionFormat()->set_HyperlinkClick(por->get_PortionFormat()->get_HyperlinkClick());
temp->get_PortionFormat()->get_HighlightColor()->set_Color(portData->get_HighlightColor());
return temp;
}