Python(Java経由)でプレゼンテーションから段落の境界を取得する
概要
この記事では、Aspose.Slides の段落の境界、サイズ、座標の取得方法について説明します。Paragraph.getRect を使用してTextFrame から段落の矩形を取得する方法、テーブルセルのテキストフレーム内の段落座標の取得方法を示し、測定単位、テキスト折り返しが境界に与える影響、ピクセル変換、効果的な段落書式設定値などの重要な詳細を強調します。
段落の矩形座標を取得する
段落の境界矩形を取得するには、Paragraph.getRect を使用します。
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
presentation = Presentation("Shapes.pptx")
try:
slide = presentation.getSlides().get_Item(0)
shape = slide.getShapes().get_Item(0)
paragraph = shape.getTextFrame().getParagraphs().get_Item(0)
rectangle = paragraph.getRect()
finally:
presentation.dispose()
テーブルセルのテキストフレーム内の段落のサイズを取得する
テーブルセルのテキストフレーム内のParagraphのサイズと座標を取得するには、Paragraph.getRect を使用します。返される矩形はテーブルセルのテキストフレームに対して相対的であるため、スライドレベルの座標が必要な場合はテーブルの位置とセルのオフセットを加算します。
以下の例は、テーブルセル内の段落の境界を取得し、スライド上に矩形を描画してその境界を可視化します。
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, Presentation, SaveFormat, ShapeType
from java.awt import Color
presentation = Presentation("source.pptx")
try:
slide = presentation.getSlides().get_Item(0)
table = slide.getShapes().get_Item(0)
cell = table.getRows().get_Item(1).get_Item(1)
cell_x = table.getX() + cell.getOffsetX()
cell_y = table.getY() + cell.getOffsetY()
for paragraph in cell.getTextFrame().getParagraphs():
if not paragraph.getText():
continue
paragraph_rectangle = paragraph.getRect()
paragraph_rectangle_x = paragraph_rectangle.x + cell_x
paragraph_rectangle_y = paragraph_rectangle.y + cell_y
paragraph_bounds_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, paragraph_rectangle_x, paragraph_rectangle_y, paragraph_rectangle.width, paragraph_rectangle.height)
paragraph_bounds_shape.getFillFormat().setFillType(FillType.NoFill)
paragraph_bounds_shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.YELLOW)
paragraph_bounds_shape.getLineFormat().getFillFormat().setFillType(FillType.Solid)
presentation.save("output.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
FAQ
段落の座標はどの単位で測定されますか?
ポイント単位で測定されます。1インチは 72 ポイントに相当します。この単位はスライド上のすべての座標と寸法に適用されます。
ワードラッピングは段落の境界に影響しますか?
はい。TextFrameFormat.setWrapText がTextFrameで有効になっている場合、テキストは領域の幅に合わせて改行され、段落の実際の境界が変わります。
段落の座標をエクスポートされた画像のピクセルに確実にマッピングできますか?
はい。ポイントをピクセルに変換するには、次の式を使用します。pixels = points x (DPI / 72)。結果はレンダリングまたはエクスポート時に選択した DPI に依存します。
スタイル継承を考慮した「実効」段落書式設定パラメータはどのように取得しますか?
effective paragraph formatting data structure を使用します。インデント、間隔、折り返し、RTL などの最終的に統合された値が返されます。