使用 PHP 管理簡報中的字型
Contents
[
Hide
]
管理字型相關屬性
簡報通常同時包含文字與圖像。文字可以以各種方式格式化,以強調特定段落與詞彙,或符合企業樣式。文字格式化可協助使用者調整簡報內容的外觀與感受。本文說明如何使用 Aspose.Slides for PHP via Java 設定投影片上段落文字的字型屬性。
使用 Aspose.Slides for PHP via Java 管理段落字型屬性的步驟:
- 建立 Presentation 類別的實例。
- 透過索引取得投影片的參考。
- 存取投影片中的 Placeholder 形狀,並將其型別轉換為 AutoShape。
- 從由 AutoShape 所揭露的 TextFrame 取得 Paragraph。
- 讓段落兩端對齊。
- 存取 Paragraph 文字的 Portion。
- 使用 FontData 定義字型,並依需求設定文字 Portion 的 Font。
- 設定字型為粗體。
- 設定字型為斜體。
- 透過 Portion 物件所揭露的 FillFormat 設定字型顏色。
- 將修改後的簡報儲存為 PPTX 檔。
以下實作上述步驟。它以未經修飾的簡報為基礎,對其中一張投影片的字型進行格式化。下方的螢幕截圖顯示輸入檔案以及程式碼片段如何改變它。程式碼會變更字型、顏色與字型樣式。
![]() |
|---|
| 圖說:輸入檔案中的文字 |
![]() |
|---|
| 圖說:相同文字的更新格式 |
# 實例化一個代表 PPTX 檔案的 Presentation 物件
$pres = new Presentation("FontProperties.pptx");
try {
# 使用投影片位置存取投影片
$slide = $pres->getSlides()->get_Item(0);
# 存取投影片中的第一個與第二個占位符,並將其型別轉換為 AutoShape
$tf1 = $slide->getShapes()->get_Item(0)->getTextFrame();
$tf2 = $slide->getShapes()->get_Item(1)->getTextFrame();
# 存取第一個段落
$para1 = $tf1->getParagraphs()->get_Item(0);
$para2 = $tf2->getParagraphs()->get_Item(0);
# 將段落設定為兩端對齊
$para2->getParagraphFormat()->setAlignment(TextAlignment->JustifyLow);
# 存取第一個 Portion
$port1 = $para1->getPortions()->get_Item(0);
$port2 = $para2->getPortions()->get_Item(0);
# 定義新字型
$fd1 = new FontData("Elephant");
$fd2 = new FontData("Castellar");
# 將新字型指派給 Portion
$port1->getPortionFormat()->setLatinFont($fd1);
$port2->getPortionFormat()->setLatinFont($fd2);
# 將字型設定為粗體
$port1->getPortionFormat()->setFontBold(NullableBool::True);
$port2->getPortionFormat()->setFontBold(NullableBool::True);
# 將字型設定為斜體
$port1->getPortionFormat()->setFontItalic(NullableBool::True);
$port2->getPortionFormat()->setFontItalic(NullableBool::True);
# 設定字型顏色
$port1->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
$port1->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
$port2->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
$port2->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
# 將 PPTX 儲存至磁碟
$pres->save("WelcomeFont.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
設定文字字型屬性
如同 管理字型相關屬性 中所述,Portion 用於在段落中保存具有相似格式樣式的文字。本文說明如何使用 Aspose.Slides for PHP via Java 建立文字方塊,並為其中的文字定義特定字型及字型系列的各種屬性。
建立文字方塊並設定其中文字的字型屬性:
- 建立 Presentation 類別的實例。
- 透過索引取得投影片的參考。
- 在投影片上加入類型為 Rectangle 的 AutoShape。
- 移除與 AutoShape 相關的填充樣式。
- 存取 AutoShape 的 TextFrame。
- 向 TextFrame 中加入文字。
- 取得與 TextFrame 相關的 Portion 物件。
- 定義用於 Portion 的字型。
- 透過 Portion 物件所揭露的相關屬性,設定粗體、斜體、底線、顏色與字高等其他字型屬性。
- 將修改後的簡報寫入為 PPTX 檔。
以下為上述步驟的實作範例。
![]() |
|---|
| 圖說:由 Aspose.Slides for PHP via Java 設定的文字字型屬性 |
# 實例化一個代表 PPTX 檔案的 Presentation 物件
$pres = new Presentation();
try {
# 取得第一張投影片
$sld = $pres->getSlides()->get_Item(0);
# 新增類型為 Rectangle 的 AutoShape
$ashp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 200, 50);
# 移除與 AutoShape 相關的任何填充樣式
$ashp->getFillFormat()->setFillType(FillType::NoFill);
# 存取與 AutoShape 相關的 TextFrame
$tf = $ashp->getTextFrame();
$tf->setText("Aspose TextBox");
# 存取與 TextFrame 相關的 Portion
$port = $tf->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
# 為 Portion 設定字型
$port->getPortionFormat()->setLatinFont(new FontData("Times New Roman"));
# 設定字型的粗體屬性
$port->getPortionFormat()->setFontBold(NullableBool::True);
# 設定字型的斜體屬性
$port->getPortionFormat()->setFontItalic(NullableBool::True);
# 設定字型的底線屬性
$port->getPortionFormat()->setFontUnderline(TextUnderlineType::Single);
# 設定字型的字高
$port->getPortionFormat()->setFontHeight(25);
# 設定字型的顏色
$port->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
$port->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
# 將簡報儲存至磁碟
$pres->save("pptxFont.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}


