您好,登錄后才能下訂單哦!
使用Java怎么給PPT添加動畫效果?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Java程序代碼
a. 新建PPT文檔,添加形狀,設置動畫效果
import com.spire.presentation.*; import com.spire.presentation.drawing.FillFormatType; import com.spire.presentation.drawing.animation.AnimationEffectType; import java.awt.*; import java.awt.geom.Rectangle2D; public class AddAnimationToShape { public static void main(String[]args) throws Exception{ //創建PowerPoint文檔 Presentation ppt = new Presentation(); //獲取幻燈片 ISlide slide = ppt.getSlides().get(0); //添加一個形狀到幻燈片 IAutoShape shape = slide.getShapes().appendShape(ShapeType.CUBE, new Rectangle2D.Double(50, 150, 150, 150)); shape.getFill().setFillType(FillFormatType.SOLID); shape.getFill().getSolidColor().setColor(Color.orange); shape.getShapeStyle().getLineColor().setColor(Color.white); //設置形狀動畫效果 slide.getTimeline().getMainSequence().addEffect(shape, AnimationEffectType.CHANGE_LINE_COLOR); //保存文檔 ppt.saveToFile("AddAnimationToShape.pptx", FileFormat.PPTX_2013); } }
b.加載已有PPT文檔,獲取形狀動畫效果,進行動畫效果設置,這里可做更為詳細的動畫設置,包括動畫重復播放類型、次數、持續時間、延遲時間等.
import com.spire.presentation.*; import com.spire.presentation.drawing.animation.AnimationEffect; public class RepeatAnimation { public static void main(String[] args) throws Exception{ //加載測試文檔 Presentation ppt = new Presentation(); ppt.loadFromFile("test.pptx"); //獲取第一張幻燈片 ISlide slide = ppt.getSlides().get(0); //獲取幻燈片中第一個動畫效果 AnimationEffect animation = slide.getTimeline().getMainSequence().get(0); //設置動畫效果循環播放類型、次數、持續時間、延遲時間 animation.getTiming().setAnimationRepeatType(AnimationRepeatType.Number); animation.getTiming().setRepeatCount(2);//設置重復次數 animation.getTiming().setDuration(2);//設置持續時間 animation.getTiming().setTriggerDelayTime(2);//設置延遲時間 //animation.getTiming().setAnimationRepeatType(AnimationRepeatType.UtilEndOfSlide);//設置動畫循環播放至幻燈片末 //animation.getTiming().setAnimationRepeatType(AnimationRepeatType.UtilNextClick);//設置動畫循環播放至下次點擊 //保存結果文檔 ppt.saveToFile("RepeatAnimation.pptx", FileFormat.PPTX_2013); ppt.dispose(); } }
import com.spire.presentation.*; import com.spire.presentation.collections.CommonBehaviorCollection; import com.spire.presentation.drawing.FillFormatType; import com.spire.presentation.drawing.animation.*; import java.awt.*; import java.awt.geom.Point2D; public class CustomAnimationPath { public static void main(String[] args) throws Exception { //創建一個空白PPT文檔 Presentation ppt = new Presentation(); //獲取第一張幻燈片(新建的幻燈片文檔默認已包含一張幻燈片) ISlide slide = ppt.getSlides().get(0); //添加形狀到幻燈片 IAutoShape shape = slide.getShapes().appendShape(ShapeType.FIVE_POINTED_STAR,new Rectangle(180, 100, 170, 170)); shape.getFill().setFillType(FillFormatType.GRADIENT); shape.getFill().getGradient().getGradientStops().append(0, KnownColors.LIGHT_PINK); shape.getFill().getGradient().getGradientStops().append(1, KnownColors.PURPLE); shape.getShapeStyle().getLineColor().setColor(Color.white); //添加動畫效果,并設置動畫效果類型為PATH_USER(自定義類型) AnimationEffect effect = slide.getTimeline().getMainSequence().addEffect(shape, AnimationEffectType.PATH_USER); //獲取自定動畫的CommonBehavior集合 CommonBehaviorCollection commonBehaviorCollection = effect.getCommonBehaviorCollection(); //設置動畫動作運動起點及路徑模式 AnimationMotion motion = (AnimationMotion)commonBehaviorCollection.get(0); motion.setOrigin(AnimationMotionOrigin.LAYOUT); motion.setPathEditMode(AnimationMotionPathEditMode.RELATIVE); //設置動作路徑 MotionPath motionPath = new MotionPath(); motionPath.addPathPoints(MotionCommandPathType.MOVE_TO,new Point2D.Float[]{new Point2D.Float(0,0)},MotionPathPointsType.CURVE_AUTO,true); motionPath.addPathPoints(MotionCommandPathType.LINE_TO,new Point2D.Float[]{new Point2D.Float(0.1f,0.1f)},MotionPathPointsType.CURVE_AUTO,true); motionPath.addPathPoints(MotionCommandPathType.LINE_TO,new Point2D.Float[]{new Point2D.Float(-0.1f,0.2f)},MotionPathPointsType.CURVE_AUTO,true); motionPath.addPathPoints(MotionCommandPathType.END,new Point2D.Float[]{},MotionPathPointsType.CURVE_AUTO,true); //設置動作路徑到動畫 motion.setPath(motionPath); //保存文檔 ppt.saveToFile("result.pptx", FileFormat.PPTX_2013); ppt.dispose(); } }
關于使用Java怎么給PPT添加動畫效果問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。