Watermark
About Watermark
A watermark in a presentation is a text or image stamp used on a slide or throughout all presentation slides. Usually, a watermark is used to indicate that the presentation is a draft (e.g., a “Draft” watermark), that it contains confidential information (e.g., a “Confidential” watermark), to specify which company it belongs to (e.g., a “Company Name” watermark), to identify the presentation author, etc. A watermark helps to prevent copyright violations by indicating that the presentation should not be copied. Watermarks are used in both PowerPoint and OpenOffice presentation formats. In Aspose.Slides, you can add a watermark to PowerPoint PPT, PPTX, and OpenOffice ODP file formats.
In Aspose.Slides, there are various ways you can create watermarks in PowerPoint or OpenOffice documents and modify their design and behavior. The common aspect is that to add text watermarks, you should use the TextFrame type, and to add image watermarks, use the PictureFrame class or fill a watermark shape with an image. PictureFrame
implements the Shape type, allowing you to use all the flexible settings of the shape object. Since TextFrame
is not a shape and its settings are limited, it is wrapped into an Shape object.
There are two ways a watermark can be applied: to a single slide or to all presentation slides. The Slide Master is used to apply a watermark to all presentation slides — the watermark is added to the Slide Master, fully designed there, and applied to all slides without affecting the permission to modify the watermark on individual slides.
A watermark is usually considered to be unavailable for editing by other users. To prevent the watermark (or rather the watermark’s parent shape) from being edited, Aspose.Slides provides shape locking functionality. A specific shape can be locked on a normal slide or on a Slide Master. When the watermark shape is locked on the Slide Master, it will be locked on all presentation slides.
You can set a name for the watermark so that in the future, if you want to delete it, you can find it in the slide’s shapes by name.
You can design the watermark in any way; however, there are usually common features in watermarks, such as center alignment, rotation, front position, etc. We will consider how to use these in the examples below.
Text Watermark
Add Text Watermark to Slide
To add a text watermark in PPT, PPTX, or ODP, you can first add a shape to the slide, then add a text frame to this shape. The text frame is represented by the TextFrame type. This type is not inherited from Shape, which has a wide set of properties for positioning the watermark in a flexible way. Therefore, the TextFrame object is wrapped in an AutoShape object. To add watermark text to the shape, use the addTextFrame method with watermark text passed into it:
const watermarkText = "CONFIDENTIAL";
let presentation = new aspose.slides.Presentation();
let slide = presentation.getSlides().get_Item(0);
let watermarkShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 400, 40);
let watermarkFrame = watermarkShape.addTextFrame(watermarkText);
presentation.dispose();
See also
Add Text Watermark to Presentation
If you want to add a text watermark to the entire presentation (i.e., all slides at once), add it to the MasterSlide. The rest of the logic is the same as when adding a watermark to a single slide — create an AutoShape object and then add the watermark to it using the addTextFrame method:
const watermarkText = "CONFIDENTIAL";
let presentation = new aspose.slides.Presentation();
let masterSlide = presentation.getMasters().get_Item(0);
let watermarkShape = masterSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 400, 40);
let watermarkFrame = watermarkShape.addTextFrame(watermarkText);
presentation.dispose();
See also
Set Watermark Shape Transparency
By default, the rectangle shape is styled with fill and line colors. The following lines of code make the shape transparent.
watermarkShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
watermarkShape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
Set the Font for a Text Watermark
You can change the font of the text watermark as shown below.
let textFormat = watermarkFrame.getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat();
textFormat.setLatinFont(new aspose.slides.FontData("Arial"));
textFormat.setFontHeight(50);
Set the Watermark Text Color
To set the color of the watermark text, use this code:
let alpha = 150;
let red = 200;
let green = 200;
let blue = 200;
let fillFormat = watermarkFrame.getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().getFillFormat();
fillFormat.setFillType(java.newByte(aspose.slides.FillType.Solid));
fillFormat.getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", red, green, blue, alpha));
Center Text Watermark
It is possible to center watermark on a slide and for that you can do the following:
const watermarkWidth = 400;
const watermarkHeight = 40;
const watermarkX = (slideSize.getWidth() - watermarkWidth) / 2;
const watermarkY = (slideSize.getHeight() - watermarkHeight) / 2;
let watermarkShape = masterSlide.getShapes().addAutoShape(
aspose.slides.ShapeType.Rectangle, watermarkX, watermarkY, watermarkWidth, watermarkHeight);
let watermarkFrame = watermarkShape.addTextFrame(watermarkText);
The image below shows the final result.
Image Watermark
Add an Image Watermark to a Presentation
To add image watermark into all presentation slides, you may do the following:
let watermarkImage = aspose.slides.Images.fromFile("watermark.png");
let image = presentation.getImages().addImage(watermarkImage);
// ...
watermarkShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture));
watermarkShape.getFillFormat().getPictureFillFormat().getPicture().setImage(image);
watermarkShape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch);
Lock a Watermark from Editing
If it is necessary to prevent a watermark from being edited, use the AutoShape.getShapeLock method on the shape. With this property, you can protect the shape from being selected, resized, repositioned, grouped with other elements, lock its text from editing, and much more:
// Lock the watermark shape from modifying
watermarkShape.getShapeLock().setSelectLocked(true);
watermarkShape.getShapeLock().setSizeLocked(true);
watermarkShape.getShapeLock().setTextLocked(true);
watermarkShape.getShapeLock().setPositionLocked(true);
watermarkShape.getShapeLock().setGroupingLocked(true);
See also
Bring a Watermark to Front
In Aspose.Slides, the Z-order of shapes can be set via the SlideCollection.reorder method. To do this, you need to call this method from the presentation slides list and pass the shape reference and its order number into the method. This way, it is possible to bring a shape to the front or send it to the back of the slide. This feature is especially useful if you need to place a watermark in front of the presentation:
let shapeCount = slide.getShapes().size();
slide.getShapes().reorder(shapeCount - 1, watermarkShape);
Set Watermark Rotation
Here is a code example of how to adjust the rotation of the watermark so that it is positioned diagonally across the slide:
const diagonalAngle = Math.atan(slideSize.getHeight() / slideSize.getWidth()) * 180 / Math.PI;
watermarkShape.setRotation(diagonalAngle);
Set a Name for a Watermark
Aspose.Slides allows you to set the name of a shape. By using the shape name, you can access it in the future to modify or delete it. To set the name of the watermark shape, assign it to the AutoShape.getName method:
watermarkShape.setName("watermark");
Remove a Watermark
To remove the watermark shape, use the AutoShape.getName method to find it in the slide shapes. Then, pass the watermark shape into the ShapeCollection.remove method:
for (var i = 0; i < slide.getShapes().size(); i++) {
var shape = slide.getShapes().get_Item(i);
if ("watermark" == shape.getName()) {
slide.getShapes().remove(watermarkShape);
}
}