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

テキスト部分の座標取得

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

// PPTX を表す Presentation クラスのインスタンス化
Presentation pres = new Presentation();
try {
    //    プレゼンテーションのコンテキストを再形成
    IAutoShape shape = (IAutoShape) pres.getSlides().get_Item(0).getShapes().get_Item(0);
    
    ITextFrame textFrame = (ITextFrame) shape.getTextFrame();
    
    for (IParagraph paragraph : textFrame.getParagraphs()) 
    {
        for (IPortion portion : paragraph.getPortions()) 
        {
            Point2D.Float point = portion.getCoordinates();
            System.out.println("X: " + point.x + " Y: " + point.y);
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

よくある質問

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

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

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

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

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

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

Paragraph の他の部分とは独立して、Portion 固有のテキスト塗りつぶしの透明度やグラデーションを設定できますか?

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