使用 PHP 在簡報中自訂圖表圖例
Contents
[
Hide
]
概觀
Aspose.Slides 提供在 PowerPoint 簡報中自訂圖表圖例的選項。本篇說明如何設定圖例的位置與大小、為整個圖例設定字型大小,以及對單一圖例項目套用格式。
它亦在 FAQ 中涵蓋多項相關行為,包括使用非覆疊模式讓圖表區域為圖例留出空間、允許長圖例標籤自動換行或使用換行符號,以及在未設定明確文字與填滿時,讓圖例的格式繼承簡報主題的配色。
圖例定位
為了設定圖例屬性,請依照以下步驟:
- 建立 Presentation 類別的實例。
- 取得投影片的參考。
- 在投影片上加入圖表。
- 設定圖例的屬性。
- 將簡報寫入為 PPTX 檔案。
在以下範例中,我們已設定圖表圖例的位置與大小。
# 建立 Presentation 類別的實例
$pres = new Presentation();
try {
# 取得投影片的參考
$slide = $pres->getSlides()->get_Item(0);
# 在投影片上新增叢集柱狀圖
$chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 500, 500);
# 設定圖例屬性
$chart->getLegend()->setX(50 / $chart->getWidth());
$chart->getLegend()->setY(50 / $chart->getHeight());
$chart->getLegend()->setWidth(100 / $chart->getWidth());
$chart->getLegend()->setHeight(100 / $chart->getHeight());
# 將簡報寫入磁碟
$pres->save("Legend_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
設定圖例的字型大小
Aspose.Slides for PHP via Java 允許開發人員設定圖例的字型大小。請依照以下步驟:
- 建立 Presentation 類別的實例。
- 建立預設圖表。
- 設定字型大小。
- 設定最小軸值。
- 設定最大軸值。
- 將簡報寫入磁碟。
# 建立 Presentation 類別的實例
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 600, 400);
$chart->getLegend()->getTextFormat()->getPortionFormat()->setFontHeight(20);
$chart->getAxes()->getVerticalAxis()->setAutomaticMinValue(false);
$chart->getAxes()->getVerticalAxis()->setMinValue(-5);
$chart->getAxes()->getVerticalAxis()->setAutomaticMaxValue(false);
$chart->getAxes()->getVerticalAxis()->setMaxValue(10);
$pres->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
設定單一圖例項目的字型大小
Aspose.Slides for PHP via Java 允許開發人員設定單一圖例項目的字型大小。請依照以下步驟:
- 建立 Presentation 類別的實例。
- 建立預設圖表。
- 取得圖例項目。
- 設定字型大小。
- 設定最小軸值。
- 設定最大軸值。
- 將簡報寫入磁碟。
# 建立 Presentation 類別的實例
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 600, 400);
$tf = $chart->getLegend()->getEntries()->get_Item(1)->getTextFormat();
$tf->getPortionFormat()->setFontBold(NullableBool::True);
$tf->getPortionFormat()->setFontHeight(20);
$tf->getPortionFormat()->setFontItalic(NullableBool::True);
$tf->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
$tf->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
$pres->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
常見問答
我可以啟用圖例,讓圖表自動為其分配空間而不是覆疊嗎?
可以。使用非覆疊模式(setOverlay(false));此時,圖表區域會縮小以容納圖例。
我可以製作多行圖例標籤嗎?
可以。當空間不足時,長標籤會自動換行;亦支援在系列名稱中使用換行字元強制換行。
如何讓圖例遵循簡報主題的配色方案?
不要為圖例或其文字設定明確的顏色、填滿或字型。這樣它們會繼承自主題,並在設計變更時正確更新。