パーション

部分の位置座標を取得

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

using (Presentation presentation = new Presentation("Shapes.pptx"))
{
    IAutoShape shape = (IAutoShape)presentation.Slides[0].Shapes[0];
    var textFrame = (ITextFrame)shape.TextFrame;

    foreach (var paragraph in textFrame.Paragraphs)
    {
        foreach (Portion portion in paragraph.Portions)
        {
            PointF point = portion.GetCoordinates();
            Console.Write(Environment.NewLine + "Corrdinates X =" + point.X + " Corrdinates Y =" + point.Y);
        }
    }
}

FAQ

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

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

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

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

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

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

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

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