C++ を使用したプレゼンテーションのテキスト部分の管理

テキスト部分の座標を取得

GetCoordinates() メソッドが IPortion と Portion クラスに追加され、部分の開始位置の座標を取得できるようになりました:

auto presentation = System::MakeObject<Presentation>(u"Shapes.pptx");
auto shape = System::ExplicitCast<IAutoShape>(presentation->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));
auto textFrame = shape->get_TextFrame();

for (const auto& paragraph : textFrame->get_Paragraphs())
{
    for (const auto& portion : paragraph->get_Portions())
    {
        PointF point = portion->GetCoordinates();
        Console::WriteLine(String(u"Coordinates X =") + point.get_X() + u" Coordinates Y =" + point.get_Y());
    }
}

よくある質問

単一の段落内のテキストの一部だけにハイパーリンクを適用できますか?

はい、個々の Portion に対してハイパーリンクを割り当て できます。そのフラグメントだけがクリック可能となり、段落全体はクリックできません。

スタイル継承はどのように機能しますか: Portion が上書きするものは何で、Paragraph/TextFrame から取得されるものは何ですか?

Portion レベルのプロパティが最も優先されます。プロパティがPortionに設定されていない場合、エンジンはParagraphから取得します。そちらにも設定がなければ、TextFrameまたはthemeのスタイルから取得します。

Portion に指定されたフォントが対象のマシン/サーバーに存在しない場合はどうなりますか?

フォント置換ルールが適用されます。テキストの再フローが起こる可能性があり、メトリック、ハイフネーション、幅が変わるため、正確な位置決めに影響します。

段落全体とは別に、Portion 固有のテキスト塗りつぶしの透明度やグラデーションを設定できますか?

はい、Portionレベルでテキストの色、塗りつぶし、透明度を隣接するフラグメントと異なる設定にできます。