Python(Java経由)でプレゼンテーションからテキスト部分の境界を取得
概要
テキストの部分は、段落内の特定のテキストフラグメントを表し、周囲のコンテンツとは別にそのフラグメントを操作できます。Aspose.Slides では、テキストフラグメントの境界を取得したり、段落の一部だけに書式設定を適用したり、テキストの動作をより詳細に制御したりする際に、部分を使用できます。
この記事では、Portion.getRect を使用して部分のバウンディング矩形を取得する方法を示します。また、Portion.getCoordinates を使用して部分の開始座標を取得する方法も示します。さらに、単一のテキストフラグメントにハイパーリンクを適用する、部分、段落、テキストフレーム、テーマの継承を通じて書式設定がどのように解決されるかを理解する、指定されたフォントが利用できない場合の処理など、一般的な部分関連シナリオをハイライトします。
テキスト部分の境界を取得
テキスト部分のバウンディング矩形を取得するには、Portion.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)
for paragraph in shape.getTextFrame().getParagraphs():
for portion in paragraph.getPortions():
rectangle = portion.getRect()
print(f"X = {rectangle.x}; Y = {rectangle.y}; Width = {rectangle.width}; Height = {rectangle.height}")
finally:
presentation.dispose()
テキスト部分の開始座標を取得
テキスト部分の開始座標を取得するには、Portion.getCoordinates を使用します:
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)
for paragraph in shape.getTextFrame().getParagraphs():
for portion in paragraph.getPortions():
point = portion.getCoordinates()
print(f"X = {point.x}; Y = {point.y}")
finally:
presentation.dispose()
よくある質問
単一の段落内のテキストの一部だけにハイパーリンクを適用できますか?
はい、個々の部分に対してハイパーリンクを割り当てことができます。そのフラグメントだけがクリック可能になり、段落全体はクリックできません。
スタイル継承はどのように機能しますか?部分がオーバーライドするものと、段落やテキストフレームから取得されるものは何ですか?
部分レベルのプロパティが最も高い優先順位を持ちます。プロパティがPortionで設定されていない場合、Aspose.Slides はParagraphから取得します。そこでも設定されていなければ、TextFrameまたはtheme のスタイルが使用されます。
部分に指定されたフォントが対象のマシンまたはサーバーに存在しない場合、どうなりますか?
フォント置換ルールが適用されます。テキストは再フローする可能性があり、メトリクス、ハイフネーション、幅が変わることがあり、正確な位置決めに影響します。
段落の他の部分とは別に、部分固有のテキスト塗りつぶしの透明度やグラデーションを設定できますか?
はい、Portionレベルでのテキストカラー、塗りつぶし、透明度は隣接するフラグメントと異なる設定が可能です。