Effektive Eigenschaften von Formen
In diesem Thema werden wir effektive und lokale Eigenschaften diskutieren. Wenn wir Werte direkt auf diesen Ebenen festlegen
- In Abschnittseigenschaften auf der Folie des Abschnitts.
- In den Textstil der Prototypform auf der Layout- oder Masterfolie (wenn die Textrahmenform des Abschnitts eine hat).
- In den globalen Texteinstellungen der Präsentation.
dann werden diese Werte als lokale Werte bezeichnet. Auf jeder Ebene können lokale Werte definiert oder weggelassen werden. Aber letztendlich, wenn es darauf ankommt, dass die Anwendung wissen muss, wie der Abschnitt aussehen soll, verwendet sie effektive Werte. Sie können effektive Werte mit der GetEffective()-Methode aus dem lokalen Format erhalten.
Das folgende Beispiel zeigt, wie man effektive Werte erhält.
// The path to the documents directory. | |
const String templatePath = u"../templates/Presentation1.pptx"; | |
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(templatePath); | |
System::SharedPtr<IAutoShape> shape = System::DynamicCast_noexcept<Aspose::Slides::IAutoShape>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)); | |
System::SharedPtr<ITextFrameFormat> localTextFrameFormat = shape->get_TextFrame()->get_TextFrameFormat(); | |
System::SharedPtr<ITextFrameFormatEffectiveData> effectiveTextFrameFormat = localTextFrameFormat->GetEffective(); | |
System::SharedPtr<IPortionFormat> localPortionFormat = shape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0)->get_PortionFormat(); | |
System::SharedPtr<IPortionFormatEffectiveData> effectivePortionFormat = localPortionFormat->GetEffective(); | |
Effektive Eigenschaften der Kamera abrufen
Aspose.Slides für C++ ermöglicht Entwicklern, die effektiven Eigenschaften der Kamera abzurufen. Zu diesem Zweck wurde die Klasse CameraEffectiveData in Aspose.Slides hinzugefügt. Die Klasse CameraEffectiveData stellt ein unveränderliches Objekt dar, das effektive Kameraeigenschaften enthält. Eine Instanz der Klasse CameraEffectiveData wird als Teil der Klasse ThreeDFormatEffectiveData verwendet, die ein effektives Wertepaar für die Klasse ThreeDFormat ist.
Das folgende Codebeispiel zeigt, wie man effektive Eigenschaften für die Kamera abruft.
// The path to the documents directory. | |
const String templatePath = u"../templates/Presentation1.pptx"; | |
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(templatePath); | |
System::SharedPtr<IThreeDFormatEffectiveData> threeDEffectiveData = pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)->get_ThreeDFormat()->GetEffective(); | |
System::Console::WriteLine(u"= Effective camera properties ="); | |
System::Console::WriteLine(System::String(u"Type: ") + System::ObjectExt::ToString((int)threeDEffectiveData->get_Camera()->get_CameraType())); | |
System::Console::WriteLine(System::String(u"Field of view: ") + threeDEffectiveData->get_Camera()->get_FieldOfViewAngle()); | |
System::Console::WriteLine(System::String(u"Zoom: ") + threeDEffectiveData->get_Camera()->get_Zoom()); | |
Effektive Eigenschaften des Lichtsets abrufen
Aspose.Slides für C++ ermöglicht Entwicklern, die effektiven Eigenschaften des Lichtsets abzurufen. Zu diesem Zweck wurde die Klasse LightRigEffectiveData in Aspose.Slides hinzugefügt. Die Klasse LightRigEffectiveData stellt ein unveränderliches Objekt dar, das effektive Eigenschaften des Lichtsets enthält. Eine Instanz der Klasse LightRigEffectiveData wird als Teil der Klasse ThreeDFormatEffectiveData verwendet, die ein effektives Wertepaar für die Klasse ThreeDFormat ist.
Das folgende Codebeispiel zeigt, wie man effektive Eigenschaften für das Lichtset abruft.
// The path to the documents directory. | |
const String templatePath = u"../templates/Presentation1.pptx"; | |
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(templatePath); | |
System::SharedPtr<IThreeDFormatEffectiveData> threeDEffectiveData = pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)->get_ThreeDFormat()->GetEffective(); | |
System::Console::WriteLine(u"= Effective light rig properties ="); | |
System::Console::WriteLine(System::String(u"Type: ") + System::ObjectExt::ToString((int)threeDEffectiveData->get_LightRig()->get_LightType())); | |
System::Console::WriteLine(System::String(u"Direction: ") + System::ObjectExt::ToString((int)threeDEffectiveData->get_LightRig()->get_Direction())); | |
Effektive Eigenschaften der Fasenform abrufen
Aspose.Slides für C++ ermöglicht Entwicklern, die effektiven Eigenschaften der Fasenform abzurufen. Zu diesem Zweck wurde die Klasse ShapeBevelEffectiveData in Aspose.Slides hinzugefügt. Die Klasse ShapeBevelEffectiveData stellt ein unveränderliches Objekt dar, das die effektiven Relief-Eigenschaften der Form enthält. Eine Instanz der Klasse ShapeBevelEffectiveData wird als Teil der Klasse ThreeDFormatEffectiveData verwendet, die ein effektives Wertepaar für die Klasse ThreeDFormat ist.
Das folgende Codebeispiel zeigt, wie man effektive Eigenschaften für die Fasenform abruft.
// The path to the documents directory. | |
const String templatePath = u"../templates/Presentation1.pptx"; | |
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(templatePath); | |
System::SharedPtr<IThreeDFormatEffectiveData> threeDEffectiveData = pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)->get_ThreeDFormat()->GetEffective(); | |
System::Console::WriteLine(u"= Effective shape's top face relief properties ="); | |
System::Console::WriteLine(System::String(u"Type: ") + System::ObjectExt::ToString((int)threeDEffectiveData->get_BevelTop()->get_BevelType())); | |
System::Console::WriteLine(System::String(u"Width: ") + threeDEffectiveData->get_BevelTop()->get_Width()); | |
System::Console::WriteLine(System::String(u"Height: ") + threeDEffectiveData->get_BevelTop()->get_Height()); | |
Effektive Eigenschaften des Textrahmens abrufen
Mit Aspose.Slides für C++ können Sie die effektiven Eigenschaften des Textrahmens abrufen. Zu diesem Zweck wurde die Klasse TextFrameFormatEffectiveData in Aspose.Slides hinzugefügt, die die effektiven Formatierungseigenschaften des Textrahmens enthält.
Das folgende Codebeispiel zeigt, wie man die effektiven Formatierungseigenschaften des Textrahmens abruft.
// The path to the documents directory. | |
const String templatePath = u"../templates/Presentation1.pptx"; | |
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(templatePath); | |
System::SharedPtr<IAutoShape> shape = System::DynamicCast_noexcept<Aspose::Slides::IAutoShape>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)); | |
System::SharedPtr<ITextFrameFormatEffectiveData> effectiveTextFrameFormat = shape->get_TextFrame()->get_TextFrameFormat()->GetEffective(); | |
System::Console::WriteLine(System::String(u"Anchoring type: ") + System::ObjectExt::ToString((int)effectiveTextFrameFormat->get_AnchoringType())); | |
System::Console::WriteLine(System::String(u"Autofit type: ") + System::ObjectExt::ToString((int)effectiveTextFrameFormat->get_AutofitType())); | |
System::Console::WriteLine(System::String(u"Text vertical type: ") + System::ObjectExt::ToString((int)effectiveTextFrameFormat->get_TextVerticalType())); | |
System::Console::WriteLine(u"Margins"); | |
System::Console::WriteLine(System::String(u" Left: ") + effectiveTextFrameFormat->get_MarginLeft()); | |
System::Console::WriteLine(System::String(u" Top: ") + effectiveTextFrameFormat->get_MarginTop()); | |
System::Console::WriteLine(System::String(u" Right: ") + effectiveTextFrameFormat->get_MarginRight()); | |
System::Console::WriteLine(System::String(u" Bottom: ") + effectiveTextFrameFormat->get_MarginBottom()); | |
Effektive Eigenschaften des Textstils abrufen
Mit Aspose.Slides für C++ können Sie die effektiven Eigenschaften des Textstils abrufen. Zu diesem Zweck wurde die Klasse TextStyleEffectiveData in Aspose.Slides hinzugefügt, die die effektiven Eigenschaften des Textstils enthält.
Das folgende Codebeispiel zeigt, wie man die effektiven Eigenschaften des Textstils abruft.
// The path to the documents directory. | |
const String templatePath = u"../templates/Presentation1.pptx"; | |
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(templatePath); | |
System::SharedPtr<IAutoShape> shape = System::DynamicCast_noexcept<Aspose::Slides::IAutoShape>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)); | |
System::SharedPtr<ITextStyleEffectiveData> effectiveTextStyle = shape->get_TextFrame()->get_TextFrameFormat()->get_TextStyle()->GetEffective(); | |
for (int32_t i = 0; i <= 8; i++) | |
{ | |
System::SharedPtr<IParagraphFormatEffectiveData> effectiveStyleLevel = effectiveTextStyle->GetLevel(i); | |
System::Console::WriteLine(System::String(u"= Effective paragraph formatting for style level #") + i + u" ="); | |
System::Console::WriteLine(System::String(u"Depth: ") + effectiveStyleLevel->get_Depth()); | |
System::Console::WriteLine(System::String(u"Indent: ") + effectiveStyleLevel->get_Indent()); | |
System::Console::WriteLine(System::String(u"Alignment: ") + System::ObjectExt::ToString(effectiveStyleLevel->get_Alignment())); | |
System::Console::WriteLine(System::String(u"Font alignment: ") + System::ObjectExt::ToString(effectiveStyleLevel->get_FontAlignment())); | |
} | |
Effektiven Schriftgradwert abrufen
Mit Aspose.Slides für C++ können Sie die effektiven Eigenschaften des Schriftgrads abrufen. Hier ist der Code, der demonstriert, wie sich der effektive Schriftgradwert des Abschnitts ändert, nachdem lokale Schriftgradwerte auf verschiedenen Präsentationsstruktur-Ebenen festgelegt wurden.
// The path to the documents directory. | |
const String outPath = u"../out/SetLocalFontHeightValues.pptx"; | |
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(); | |
System::SharedPtr<IAutoShape> newShape = pres->get_Slides()->idx_get(0)->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Rectangle, 100.0f, 100.0f, 400.0f, 75.0f, false); | |
newShape->AddTextFrame(u""); | |
newShape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->Clear(); | |
System::SharedPtr<IPortion> portion0 = System::MakeObject<Portion>(u"Sample text with first portion"); | |
System::SharedPtr<IPortion> portion1 = System::MakeObject<Portion>(u" and second portion."); | |
newShape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->Add(portion0); | |
newShape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->Add(portion1); | |
System::Console::WriteLine(u"Effective font height just after creation:"); | |
System::Console::WriteLine(System::String(u"Portion #0: ") + portion0->get_PortionFormat()->GetEffective()->get_FontHeight()); | |
System::Console::WriteLine(System::String(u"Portion #1: ") + portion1->get_PortionFormat()->GetEffective()->get_FontHeight()); | |
pres->get_DefaultTextStyle()->GetLevel(0)->get_DefaultPortionFormat()->set_FontHeight(24.0f); | |
System::Console::WriteLine(u"Effective font height after setting entire presentation default font height:"); | |
System::Console::WriteLine(System::String(u"Portion #0: ") + portion0->get_PortionFormat()->GetEffective()->get_FontHeight()); | |
System::Console::WriteLine(System::String(u"Portion #1: ") + portion1->get_PortionFormat()->GetEffective()->get_FontHeight()); | |
newShape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_ParagraphFormat()->get_DefaultPortionFormat()->set_FontHeight(40.0f); | |
System::Console::WriteLine(u"Effective font height after setting paragraph default font height:"); | |
System::Console::WriteLine(System::String(u"Portion #0: ") + portion0->get_PortionFormat()->GetEffective()->get_FontHeight()); | |
System::Console::WriteLine(System::String(u"Portion #1: ") + portion1->get_PortionFormat()->GetEffective()->get_FontHeight()); | |
newShape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0)->get_PortionFormat()->set_FontHeight(55.0f); | |
System::Console::WriteLine(u"Effective font height after setting portion #0 font height:"); | |
System::Console::WriteLine(System::String(u"Portion #0: ") + portion0->get_PortionFormat()->GetEffective()->get_FontHeight()); | |
System::Console::WriteLine(System::String(u"Portion #1: ") + portion1->get_PortionFormat()->GetEffective()->get_FontHeight()); | |
newShape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(1)->get_PortionFormat()->set_FontHeight(18.0f); | |
System::Console::WriteLine(u"Effective font height after setting portion #1 font height:"); | |
System::Console::WriteLine(System::String(u"Portion #0: ") + portion0->get_PortionFormat()->GetEffective()->get_FontHeight()); | |
System::Console::WriteLine(System::String(u"Portion #1: ") + portion1->get_PortionFormat()->GetEffective()->get_FontHeight()); | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); |
Effektives Füllformat für Tabellen abrufen
Mit Aspose.Slides für C++ können Sie das effektive Füllformat für verschiedene logische Teile von Tabellen abrufen. Zu diesem Zweck wurde das Interface IFillFormatEffectiveData in Aspose.Slides hinzugefügt, das die effektiven Füllformatierungseigenschaften enthält. Bitte beachten Sie, dass die Zellformatierung immer eine höhere Priorität hat als die Zeilenformatierung, eine Zeile eine höhere Priorität als eine Spalte und eine Spalte eine höhere Priorität als die gesamte Tabelle hat.
Daher werden schließlich die Eigenschaften von CellFormatEffectiveData immer verwendet, um die Tabelle zu zeichnen. Das folgende Codebeispiel zeigt, wie man die effektive Füllformatierung für verschiedene logische Teile von Tabellen abruft.
// The path to the documents directory. | |
const String templatePath = u"../templates/Presentation1.pptx"; | |
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(templatePath); | |
System::SharedPtr<ITable> tbl = System::DynamicCast_noexcept<Aspose::Slides::ITable>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)); | |
System::SharedPtr<ITableFormatEffectiveData> tableFormatEffective = tbl->get_TableFormat()->GetEffective(); | |
System::SharedPtr<IRowFormatEffectiveData> rowFormatEffective = tbl->get_Rows()->idx_get(0)->get_RowFormat()->GetEffective(); | |
System::SharedPtr<IColumnFormatEffectiveData> columnFormatEffective = tbl->get_Columns()->idx_get(0)->get_ColumnFormat()->GetEffective(); | |
System::SharedPtr<ICellFormatEffectiveData> cellFormatEffective = tbl->idx_get(0, 0)->get_CellFormat()->GetEffective(); | |
System::SharedPtr<IFillFormatEffectiveData> tableFillFormatEffective = tableFormatEffective->get_FillFormat(); | |
System::SharedPtr<IFillFormatEffectiveData> rowFillFormatEffective = rowFormatEffective->get_FillFormat(); | |
System::SharedPtr<IFillFormatEffectiveData> columnFillFormatEffective = columnFormatEffective->get_FillFormat(); | |
System::SharedPtr<IFillFormatEffectiveData> cellFillFormatEffective = cellFormatEffective->get_FillFormat(); | |