Java 如何在PPT中設定形狀組合、取消組合、編輯組合形狀
阿新 • • 發佈:2021-01-21
PPT中支援插入多達9種不同型別的形狀,每種型別下又包含數十種形狀樣式。針對如此多種型別的形狀,為頁面元素設計需要、方便形狀操作管理的目的,可通過形狀“組合”的方式來固定多個形狀的位置、佈局;對已有的組合形狀,也可通過“取消組合”來重新定義形狀組合樣式,或者編輯已有的組合形狀,可操作組合形狀或者組合形狀下的子形狀,如設定形狀名稱、旋轉、高、寬、對齊方式,同時,可設定形狀排列方式(置於頂/底層、上/下移一層)等等。下面通過Java後端程式程式碼演示如何來實現以上操作,文章分3個示例demo來展示。
1. 程式所需API
可下載專門用於PowerPoint文件操作的API,Free Spire.Presentation for Java。獲取 Jar包後,將lib資料夾下的jar檔案匯入Java程式。(注:本文程式JDK版本為1.8.0)
2. Java程式碼
2.1 組合形狀
import com.spire.presentation.*; import com.spire.presentation.drawing.FillFormatType; import java.awt.geom.Rectangle2D; import java.util.ArrayList; public class GroupShapes { public static void main(String[] args) throws Exception{//建立PPT文件 Presentation ppt = new Presentation(); //獲取第一張幻燈片 ISlide slide = ppt.getSlides().get(0); //新增一個緞帶形狀 IShape ribbon = slide.getShapes().appendShape(ShapeType.RIBBON, new Rectangle2D.Double(250,100,250,40)); ribbon.getFill().setFillType(FillFormatType.SOLID); ribbon.getFill().getSolidColor().setKnownColor(KnownColors.GOLD); ribbon.getLine().setWidth(0.1f); //新增一個心形 IShape heart = slide.getShapes().appendShape(ShapeType.HEART, new Rectangle2D.Double(335, 80, 80, 80)); heart.getFill().setFillType(FillFormatType.SOLID); heart.getFill().getSolidColor().setKnownColor(KnownColors.RED); heart.getLine().setWidth(0.1f); //將兩個形狀新增到ArrayList陣列 ArrayList list = new ArrayList(); list.add(ribbon); list.add(heart); //組合陣列中的形狀 ppt.getSlides().get(0).groupShapes(list); //儲存文件 ppt.saveToFile("GroupShapes.pptx", FileFormat.PPTX_2013); ppt.dispose(); } }
2.2 取消形狀組合
import com.spire.presentation.*; public class UngroupShape { public static void main(String[] args) throws Exception{ //載入測試文件 Presentation ppt = new Presentation(); ppt.loadFromFile("GroupShapes.pptx"); //獲取指定幻燈片中的形狀 ISlide slide = ppt.getSlides().get(0); IShape shape = slide.getShapes().get(0); //判斷是否為組合形狀 if(shape instanceof GroupShape) { //取消形狀組合 slide.ungroup((GroupShape)shape); } //儲存文件 ppt.saveToFile("UngroupShape.pptx",FileFormat.PPTX_2013); ppt.dispose(); } }
2.3 編輯組合形狀,並設定形狀排列方式(置於頂/底層,上/下移一層)
以上文示例1中生成的組合形狀為測試物件,重新命名組合形狀並設定形狀排列方式為置於頂層。
import com.spire.presentation.*; public class ModifyGroupShape { public static void main(String[] args) throws Exception { //載入測試文件 Presentation ppt = new Presentation(); ppt.loadFromFile("GroupShapes.pptx"); //獲取指定幻燈片中的形狀 ISlide slide = ppt.getSlides().get(0); IShape shape = slide.getShapes().get(0); //判斷是否為組合形狀 if(shape instanceof GroupShape) { shape.setName("組合形狀1");//命名組合形狀 IShape objectshape1 = ((GroupShape) shape).getShapes().get(0); objectshape1.setShapeArrange(ShapeAlignmentEnum.ShapeArrange.BringToFront);//設定子形狀1置於頂層 IShape objectshape2 = ((GroupShape) shape).getShapes().get(1); objectshape2.setName("綢帶");//重新命名移動後的子形狀 } //儲存文件 ppt.saveToFile("ModifyGroupShape.pptx",FileFormat.PPTX_2013); ppt.dispose(); } }
延伸閱讀推薦:
(本文完)