テキストボックスの管理
スライド上のテキストは通常、テキストボックスまたは図形に存在します。したがって、スライドにテキストを追加するには、テキストボックスを追加し、その中にテキストを入れる必要があります。Aspose.Slides for Python via .NETは、テキストを含む図形を追加するためのIAutoShapeインターフェイスを提供します。
情報
Aspose.Slidesは、スライドに図形を追加するためのIShapeインターフェイスも提供しています。ただし、IShape
インターフェイスを介して追加されたすべての図形がテキストを保持できるわけではありません。しかし、IAutoShapeインターフェイスを介して追加された図形は、テキストを含むことができます。
注意
したがって、テキストを追加したい図形を扱う場合、その図形がIAutoShape
インターフェイスを介してキャストされたことを確認することをお勧めします。その場合のみ、IAutoShape
のプロパティであるTextFrameを操作できます。このページのテキストの更新セクションを参照してください。
スライドにテキストボックスを作成する
スライドにテキストボックスを作成するには、以下の手順を実行します。
- Presentationクラスのインスタンスを作成します。
- 新しく作成したプレゼンテーションの最初のスライドへの参照を取得します。
- スライド上の指定位置に
ShapeType
をRECTANGLE
に設定したIAutoShapeオブジェクトを追加し、新たに追加されたIAutoShape
オブジェクトへの参照を取得します。 - テキストを含む
text_frame
プロパティをIAutoShape
オブジェクトに追加します。以下の例では、Aspose TextBoxというテキストを追加しました。 - 最後に、
Presentation
オブジェクトを通じてPPTXファイルを書き込みます。
このPythonコードは、上記の手順を実装したもので、スライドにテキストを追加する方法を示しています:
import aspose.slides as slides
# PresentationExをインスタンス化
with slides.Presentation() as pres:
# プレゼンテーションの最初のスライドを取得
sld = pres.slides[0]
# 自動図形を追加し、タイプを矩形に設定
ashp = sld.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 75, 150, 50)
# 矩形にTextFrameを追加
ashp.add_text_frame(" ")
# テキストフレームにアクセス
txtFrame = ashp.text_frame
# テキストフレーム用の段落オブジェクトを作成
para = txtFrame.paragraphs[0]
# 段落用のポーションオブジェクトを作成
portion = para.portions[0]
# テキストを設定
portion.text = "Aspose TextBox"
# プレゼンテーションをディスクに保存
pres.save("TextBox_out.pptx", slides.export.SaveFormat.PPTX)
テキストボックス図形の確認
Aspose.Slidesは、図形を調べ、テキストボックスを見つけるためのis_text_box
プロパティ(AutoShapeクラスから)を提供します。
このPythonコードは、図形がテキストボックスとして作成されたかを確認する方法を示しています:xxx
from aspose.slides import Presentation, AutoShape
with Presentation("pres.pptx") as pres:
for slide in pres.slides:
for shape in slide.shapes:
if (type(shape) is AutoShape):
print("図形はテキストボックスです" if shape.is_text_box else "図形はテキストボックスではありません")
テキストボックスに列を追加
Aspose.Slidesは、テキストボックスに列を追加するためのcolumn_countおよびcolumn_spacingプロパティ(ITextFrameFormatインターフェイスおよびtext_frame_formatクラスから)を提供します。テキストボックス内の列数を指定し、列間の間隔をポイントで設定できます。
このPythonコードは、説明した操作を示しています:
import aspose.slides as slides
with slides.Presentation() as presentation:
# プレゼンテーションの最初のスライドを取得
slide = presentation.slides[0]
# 自動図形を矩形として追加
aShape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 100, 300, 300)
# 矩形にTextFrameを追加
aShape.add_text_frame("これらのすべての列は単一のテキストコンテナ内に制限され、" +
"テキストを追加または削除でき、新しいテキストまたは残りのテキストが自動的に調整されます。" +
"ただし、テキストが一つのコンテナから他のコンテナに流れることはありません。" +
"私たちはPowerPointのテキストの列オプションが限られていることをお伝えしました!")
# TextFrameのテキストフォーマットを取得
format = aShape.text_frame.text_frame_format
# TextFrameの列数を指定
format.column_count = 3
# 列間の間隔を指定
format.column_spacing = 10
# プレゼンテーションを保存
presentation.save("ColumnCount.pptx", slides.export.SaveFormat.PPTX)
テキストフレームに列を追加
Aspose.Slides for Python via .NETは、テキストフレームに列を追加するためのColumnCountプロパティを(ITextFrameFormatインターフェイスから)提供します。このプロパティを使用して、テキストフレーム内の好ましい列数を指定できます。
このPythonコードは、テキストフレーム内に列を追加する方法を示しています:
import aspose.slides as slides
outPptxFileName = "ColumnsTest.pptx"
with slides.Presentation() as pres:
shape1 = pres.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 100, 300, 300)
format = shape1.text_frame.text_frame_format
format.column_count = 2
shape1.text_frame.text = """これらのすべての列は単一のテキストコンテナ内に強制されており --
テキストを追加したり削除したりできます - 新しいテキストまたは残りのテキストが自動的に調整されます
コンテナ内に留まるために。このため、テキストが一つのコンテナから他のコンテナにあふれることはありません --
PowerPointのテキストの列オプションが限られているためです!"""
pres.save(outPptxFileName, slides.export.SaveFormat.PPTX)
with slides.Presentation(path + outPptxFileName) as test:
print(test.slides[0].shapes[0].text_frame.text_frame_format.column_count)
print(test.slides[0].shapes[0].text_frame.text_frame_format.column_spacing)
format.column_spacing = 20
pres.save(path + outPptxFileName, slides.export.SaveFormat.PPTX)
with slides.Presentation(path + outPptxFileName) as test:
print(test.slides[0].shapes[0].text_frame.text_frame_format.column_count)
print(test.slides[0].shapes[0].text_frame.text_frame_format.column_spacing)
format.column_count = 3
format.column_spacing = 15
pres.save(path + outPptxFileName, slides.export.SaveFormat.PPTX)
with slides.Presentation(path + outPptxFileName) as test:
print(test.slides[0].shapes[0].text_frame.text_frame_format.column_count)
print(test.slides[0].shapes[0].text_frame.text_frame_format.column_spacing)
テキストの更新
Aspose.Slidesを使用すると、テキストボックス内のテキストやプレゼンテーション内のすべてのテキストを変更または更新できます。
このPythonコードは、プレゼンテーション内のすべてのテキストを更新または変更する操作を示しています:
import aspose.slides as slides
with slides.Presentation("pres.pptx") as pres:
for slide in pres.slides:
for shape in slide.shapes:
if type(shape) is slides.AutoShape:
for paragraph in shape.text_frame.paragraphs:
for portion in paragraph.portions:
portion.text = portion.text.replace("years", "months")
portion.portion_format.font_bold = 1
# 修正されたプレゼンテーションを保存
pres.save("text-changed.pptx", slides.export.SaveFormat.PPTX)
ハイパーリンク付きテキストボックスを追加
テキストボックス内にリンクを挿入することができます。テキストボックスがクリックされると、ユーザーはそのリンクを開くように導かれます。
ハイパーリンクを含むテキストボックスを追加するには、以下の手順を実行します:
Presentation
クラスのインスタンスを作成します。- 新しく作成したプレゼンテーションの最初のスライドへの参照を取得します。
- スライド上の指定位置に
ShapeType
をRECTANGLE
に設定したAutoShape
オブジェクトを追加し、新たに追加されたAutoShapeオブジェクトへの参照を取得します。 AutoShape
オブジェクトにAspose TextBoxをデフォルトテキストとして含むtext_frame
を追加します。hyperlink_manager
クラスをインスタンス化します。text_frame
の所望のポーションに関連付けられたHyperlinkClickプロパティにhyperlink_manager
オブジェクトを割り当てます。- 最後に、
Presentation
オブジェクトを介してPPTXファイルを書き込みます。
このPythonコードは、ハイパーリンク付きのテキストボックスをスライドに追加する方法を示しています:
import aspose.slides as slides
# PPTXを表すPresentationクラスをインスタンス化
with slides.Presentation() as pptxPresentation:
# プレゼンテーションの最初のスライドを取得
slide = pptxPresentation.slides[0]
# 自動図形オブジェクトを矩形として追加
pptxShape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 150, 150, 50)
# 自動図形に関連するITextFrameプロパティにアクセス
pptxShape.add_text_frame("")
textFrame = pptxShape.text_frame
# フレームにテキストを追加
textFrame.paragraphs[0].portions[0].text = "Aspose.Slides"
# ポーションテキストのハイパーリンクを設定
hm = textFrame.paragraphs[0].portions[0].portion_format.hyperlink_manager
hm.set_external_hyperlink_click("http://www.aspose.com")
# PPTXプレゼンテーションを保存
pptxPresentation.save("hLinkPPTX_out.pptx", slides.export.SaveFormat.PPTX)