【前言】
在PPT幻燈片中,可通過新增形狀的方式,來實現類似水印的效果,可新增單一文字水印效果,即在幻燈片中心位置水印以單個文字字樣顯示,但通過一定方法也可以新增多行(平鋪)文字水印效果,即在幻燈片中以一定方式平鋪排列多個文字水印效果到頁面上。上篇文章中介紹了通過C# 程式來新增多行水印效果,本文以Java程式程式碼為例介紹如何實現水印新增,包括新增單一文字水印和平鋪文字內水印,程式碼供參考。
【程式環境】
本次程式編譯環境為IntelliJ IDEA,JDK版本1.8.0,並引入free spire.presentation.jar3.9.0版本檔案。
1. 新增單一文字水印
import com.spire.presentation.*; import com.spire.presentation.drawing.FillFormatType; import java.awt.*; import java.awt.geom.Rectangle2D; public class TextWatermark { public static void main(String[] args) throws Exception { //載入示例文件 Presentation ppt = new Presentation(); ppt.loadFromFile("sample.pptx"); //獲取指定幻燈片 ISlide slide = ppt.getSlides().get(0); //設定文字水印的寬和高 int width= 400; int height= 300; //定義一個長方形區域 Rectangle2D.Double rect = new Rectangle2D.Double((ppt.getSlideSize().getSize().getWidth() - width) / 2, (ppt.getSlideSize().getSize().getHeight() - height) / 2, width, height); //新增一個shape到定義區域 IAutoShape shape = slide.getShapes().appendShape(ShapeType.RECTANGLE, rect); //設定shape樣式 shape.getFill().setFillType(FillFormatType.NONE); shape.getShapeStyle().getLineColor().setColor(Color.white); shape.setRotation(-45); shape.getLocking().setSelectionProtection(true); shape.getLine().setFillType(FillFormatType.NONE); shape.setShapeArrange(ShapeAlignmentEnum.ShapeArrange.SendToBack); //新增文字到shape shape.getTextFrame().setText("內部使用"); PortionEx textRange = shape.getTextFrame().getTextRange(); //設定文字水印樣式 textRange.getFill().setFillType(FillFormatType.SOLID); textRange.getFill().getSolidColor().setColor(new Color(211,211,211)); textRange.setFontHeight(50); //儲存文件 ppt.saveToFile("TextWatermark.pptx", FileFormat.PPTX_2013); ppt.dispose(); } }
單一水印效果:
2. 新增多行(平鋪)文字水印
import com.spire.presentation.*; import com.spire.presentation.drawing.FillFormatType; import java.awt.*; import java.awt.geom.Rectangle2D; public class TextWatermark2 { public static void main(String[] args) throws Exception{ //載入PPT源文件 Presentation ppt = new Presentation(); ppt.loadFromFile("sample.pptx"); //獲取指定幻燈片 ISlide slide = ppt.getSlides().get(0); //設定文字水印文字寬和高 int width= 110; int height= 80; //起始座標 float x = 10; float y = 40; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { //繪製文字,設定文字格式並將其新增到第一張幻燈片 Rectangle2D.Double rect = new Rectangle2D.Double(x,y,width, height); IAutoShape shape = slide.getShapes().appendShape(ShapeType.RECTANGLE, rect); shape.getFill().setFillType(FillFormatType.NONE); shape.getShapeStyle().getLineColor().setColor(Color.white); shape.setRotation(-45); shape.getLocking().setSelectionProtection(true); shape.getLine().setFillType(FillFormatType.NONE); shape.getTextFrame().setText("內部使用"); shape.setShapeArrange(ShapeAlignmentEnum.ShapeArrange.SendToBack); PortionEx textRange = shape.getTextFrame().getTextRange(); textRange.getFill().setFillType(FillFormatType.SOLID); textRange.getFill().getSolidColor().setColor(new Color(238,130,238)); textRange.setFontHeight(20); x += (100 + ppt.getSlideSize().getSize().getWidth()/6); } x = 30; y += (100 + ppt.getSlideSize().getSize().getHeight()/7) ; } //儲存文件 ppt.saveToFile("TextWatermark2.pptx", FileFormat.PPTX_2013); ppt.dispose(); } }
這裡通過設定文字寬度值int width的值可實現不同的水印文字字元排列樣式,如下width = 110時,水印字樣效果:
width=60時,水印效果:
width=10時,水印效果:
【最後】
以上是本次介紹Java新增PPT文字水印的全部內容,新增單一水印和平鋪水印效果的基本方法相差不大。
(本文完,如需轉載,請務必註明出處!!!)