.NET のプレゼンテーションでテキスト部分を管理する
Contents
[
Hide
]
テキスト部分の座標取得
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);
}
}
}
よくある質問
単一の段落内のテキストの一部にだけハイパーリンクを適用できますか?
はい、個別の部分に対してハイパーリンクを割り当てすることができます。そのフラグメントだけがクリック可能になり、段落全体はクリックできません。
スタイルの継承はどのように機能しますか:Portion が上書きするものは何で、Paragraph/TextFrame から取得されるものは何ですか?
Portion レベルのプロパティが最も優先されます。プロパティが Portion で設定されていない場合、エンジンは Paragraph から取得します。そこでも設定されていない場合は、TextFrame または theme のスタイルから取得されます。
Portion 用に指定されたフォントが対象のマシン/サーバーに存在しない場合はどうなりますか?
フォント置換ルール が適用されます。テキストは再フローする可能性があり、メトリクス、ハイフネーション、幅が変わることがあり、正確な位置決めに影響します。
段落全体とは独立して、Portion 固有のテキスト塗りつぶしの透過性やグラデーションを設定できますか?
はい、Portion レベルでテキストカラー、塗りつぶし、透過性を隣接するフラグメントとは異なる設定にできます。