使用 Python via Java 在簡報中管理字體
Contents
[
Hide
]
概覽
Aspose.Slides 允許您直接從程式碼中管理簡報文字的字體屬性。您可以透過形狀、文字框、段落和 Portion 來存取投影片中的文字,然後對所選文字套用格式設定。
本文說明如何為簡報中現有的文字配置字體相關屬性,包括字體族、粗體與斜體樣式、段落對齊方式以及字體顏色。它還示範如何建立文字方塊、向其中加入文字,並在儲存為 PPTX 檔案之前設定字體屬性,如字體族、粗體、斜體、底線、字型大小及顏色。
管理字體相關屬性
Note
簡報通常包含文字與影像。文字可以以多種方式格式化,無論是突顯特定段落與詞彙,或符合公司樣式。文字格式化協助使用者變化簡報內容的外觀與感受。本文示範如何使用 Aspose.Slides for Python via Java 來配置投影片上段落文字的字體屬性。- 建立 Presentation 類別的實例。
- 透過索引取得投影片的參考。
- 以 AutoShape 方式存取投影片中的 Placeholder 形狀。
- 從由 AutoShape 所公開的 TextFrame 中取得 Paragraph。
- 將段落設定為兩端對齊。
- 存取 Paragraph 的文字 Portion。
- 使用 FontData 定義字體,並相應設定文字 Portion 的 Font。
- 設定字體為粗體。
- 設定字體為斜體。
- 使用由 Portion 物件所公開的 FillFormat 設定字體顏色。
- 將修改後的簡報儲存為 PPTX 檔案。
以下提供上述步驟的實作範例。它會取得一個未經格式化的簡報,並對其中一張投影片的字體進行格式化。以下的螢幕截圖顯示輸入檔案以及程式碼片段如何變更它。程式碼會變更字體、顏色與字體樣式。
![]() |
|---|
| 圖:輸入檔案中的文字 |
![]() |
|---|
| 圖:相同文字的更新格式 |
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, FontData, NullableBool, Presentation, SaveFormat, TextAlignment
from java.awt import Color
# 載入簡報。
presentation = Presentation("FontProperties.pptx")
try:
# 取得第一張投影片以及其前兩個佔位符的文字框。
slide = presentation.getSlides().get_Item(0)
title_text_frame = slide.getShapes().get_Item(0).getTextFrame()
body_text_frame = slide.getShapes().get_Item(1).getTextFrame()
# 存取每個文字框中的第一段落。
title_paragraph = title_text_frame.getParagraphs().get_Item(0)
body_paragraph = body_text_frame.getParagraphs().get_Item(0)
body_paragraph.getParagraphFormat().setAlignment(TextAlignment.JustifyLow)
# 取得每個段落的第一個 Portion。
title_portion = title_paragraph.getPortions().get_Item(0)
body_portion = body_paragraph.getPortions().get_Item(0)
# 定義並指派新字體。
title_font = FontData("Elephant")
body_font = FontData("Castellar")
title_portion.getPortionFormat().setLatinFont(title_font)
body_portion.getPortionFormat().setLatinFont(body_font)
# 設定字體為粗體與斜體。
title_portion.getPortionFormat().setFontBold(NullableBool.True_)
body_portion.getPortionFormat().setFontBold(NullableBool.True_)
title_portion.getPortionFormat().setFontItalic(NullableBool.True_)
body_portion.getPortionFormat().setFontItalic(NullableBool.True_)
# 設定字體顏色。
title_portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
title_portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)
body_portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
body_portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.GREEN)
# 儲存簡報。
presentation.save("WelcomeFont.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
設定文字字體屬性
Note
如 管理字體相關屬性 中所述, Portion 用於在段落中保存具有相似格式樣式的文字。本篇說明如何使用 Aspose.Slides for Python via Java 建立帶有文字的文字方塊,然後定義特定字體及各種其他字體屬性。- 建立 Presentation 類別的實例。
- 透過索引取得投影片的參考。
- 向投影片加入類型為 Rectangle 的 AutoShape。
- 移除與 AutoShape 相關的填充樣式。
- 存取 AutoShape 的 TextFrame。
- 向 TextFrame 中加入一些文字。
- 存取與 TextFrame 關聯的 Portion 物件。
- 定義用於 Portion 的字體。
- 使用 Portion 物件所公開的相關屬性,設定其他字體屬性,如粗體、斜體、底線、顏色與高度。
- 將修改後的簡報寫入為 PPTX 檔案。
以下提供上述步驟的實作範例。
![]() |
|---|
| 圖:由 Aspose.Slides for Python via Java 設定的字體屬性示例 |
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, FontData, NullableBool, Presentation, SaveFormat, ShapeType, TextUnderlineType
from java.awt import Color
presentation = Presentation()
try:
# 取得第一張投影片並加入矩形。
slide = presentation.getSlides().get_Item(0)
shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 50)
# 移除形狀的填充。
shape.getFillFormat().setFillType(FillType.NoFill)
# 在形狀的文字框中加入文字。
text_frame = shape.getTextFrame()
text_frame.setText("Aspose TextBox")
portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)
# 設定字體族。
font = FontData("Times New Roman")
portion.getPortionFormat().setLatinFont(font)
# 設定粗體、斜體、底線與字體大小。
portion.getPortionFormat().setFontBold(NullableBool.True_)
portion.getPortionFormat().setFontItalic(NullableBool.True_)
portion.getPortionFormat().setFontUnderline(TextUnderlineType.Single)
portion.getPortionFormat().setFontHeight(25)
# 設定字體顏色。
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)
# 儲存簡報。
presentation.save("pptxFont.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()


