Lägg till vattenmärken i presentationer i Java
Introduktion
Ett vattenmärke i en presentation är en text‑ eller bildstämpel som används på en bild eller genom alla presentationsbilder. Vanligtvis används ett vattenmärke för att indikera att presentationen är ett utkast (t.ex. ett “Draft”-vattenmärke), att den innehåller konfidentiell information (t.ex. ett “Confidential”-vattenmärke), för att specificera vilket företag den tillhör (t.ex. ett “Company Name”-vattenmärke), för att identifiera presentationens författare osv. Ett vattenmärke hjälper till att förhindra upphovsrättsintrång genom att indikera att presentationen inte får kopieras. Vattenmärken används i både PowerPoint‑ och OpenOffice‑presentationsformat. I Aspose.Slides kan du lägga till ett vattenmärke i PowerPoint‑PPT, PPTX och OpenOffice‑ODP‑filformat.
På Aspose.Slides finns det flera sätt att skapa vattenmärken i PowerPoint‑ eller OpenOffice‑dokument och ändra deras design och beteende. Den gemensamma aspekten är att för att lägga till textvattenmärken ska du använda gränssnittet ITextFrame, och för att lägga till bildvattenmärken, använd klassen PictureFrame eller fyll en vattenmärkesform med en bild. PictureFrame implementerar gränssnittet IShape vilket gör att du kan använda alla flexibla inställningar för formobjektet. Eftersom ITextFrame inte är en form och dess inställningar är begränsade, omsluts den i ett IShape‑objekt.
Det finns två sätt att applicera ett vattenmärke: på en enskild bild eller på alla presentationsbilder. Slide Master används för att applicera ett vattenmärke på alla bilder — vattenmärket läggs till i Slide Master, designas helt där och appliceras på alla bilder utan att påverka möjligheten att redigera vattenmärket på enskilda bilder.
Ett vattenmärke anses vanligtvis vara otillgängligt för redigering av andra användare. För att förhindra att vattenmärket (eller snarare dess överordnade form) redigeras, erbjuder Aspose.Slides funktionalitet för låsning av former. En specifik form kan låsas på en vanlig bild eller på en Slide Master. När vattenmärkesformen är låst på Slide Master, kommer den att vara låst på alla presentationsbilder.
Du kan ge vattenmärket ett namn så att du i framtiden, om du vill ta bort det, kan hitta det bland bildens former med namn.
Du kan utforma vattenmärket på vilket sätt du vill; dock finns det vanligtvis gemensamma egenskaper för vattenmärken, såsom mittjustering, rotation, framre position osv. Vi kommer att titta på hur man använder dessa i exemplen nedan.
Textvattenmärke
Lägg till ett textvattenmärke på en bild
För att lägga till ett textvattenmärke i PPT, PPTX eller ODP kan du först lägga till en form på bilden och sedan lägga till en textram på den formen. Textramen representeras av gränssnittet ITextFrame. Denna typ är inte ärvd från IShape, som har ett brett urval av egenskaper för att placera vattenmärket på ett flexibelt sätt. Därför omsluts ITextFrame-objektet i ett IAutoShape-objekt. För att lägga till vattenmärketext till formen, använd metoden addTextFrame som visas nedan.
String watermarkText = "CONFIDENTIAL";
Presentation presentation = new Presentation();
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape watermarkShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 400, 40);
ITextFrame watermarkFrame = watermarkShape.addTextFrame(watermarkText);
presentation.dispose();
Lägg till ett textvattenmärke i en presentation
Om du vill lägga till ett textvattenmärke i hela presentationen (dvs. alla bilder på en gång), lägg till det i MasterSlide. Resten av logiken är densamma som när du lägger till ett vattenmärke på en enskild bild — skapa ett IAutoShape-objekt och lägg sedan till vattenmärket med metoden addTextFrame.
String watermarkText = "CONFIDENTIAL";
Presentation presentation = new Presentation();
IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
IAutoShape watermarkShape = masterSlide.getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 400, 40);
ITextFrame watermarkFrame = watermarkShape.addTextFrame(watermarkText);
presentation.dispose();
Se även
Ställ in vattenmärkesformens transparens
Standard är att rektangelformen har fyllnings‑ och linjefärger. Följande kodrader gör formen genomskinlig.
watermarkShape.getFillFormat().setFillType(FillType.NoFill);
watermarkShape.getLineFormat().getFillFormat().setFillType(FillType.NoFill);
Ställ in typsnittet för ett textvattenmärke
Du kan ändra typsnittet för textvattenmärket som visas nedan.
IPortionFormat textFormat = watermarkFrame.getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat();
textFormat.setLatinFont(new FontData("Arial"));
textFormat.setFontHeight(50);
Ställ in färg för vattenmärketexten
För att sätta färg på vattenmärketexten, använd följande kod:
int alpha = 150, red = 200, green = 200, blue = 200;
IFillFormat fillFormat = watermarkFrame.getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().getFillFormat();
fillFormat.setFillType(FillType.Solid);
fillFormat.getSolidFillColor().setColor(new Color(red, green, blue, alpha));
Centrera ett textvattenmärke
Det är möjligt att centrera vattenmärket på en bild, och för detta kan du göra följande:
Dimension2D slideSize = presentation.getSlideSize().getSize();
float watermarkWidth = 400;
float watermarkHeight = 40;
float watermarkX = ((float)slideSize.getWidth() - watermarkWidth) / 2;
float watermarkY = ((float)slideSize.getHeight() - watermarkHeight) / 2;
IAutoShape watermarkShape = slide.getShapes().addAutoShape(
ShapeType.Rectangle, watermarkX, watermarkY, watermarkWidth, watermarkHeight);
ITextFrame watermarkFrame = watermarkShape.addTextFrame(watermarkText);
Bild nedan visar slutresultatet.

Bildvattenmärke
Lägg till ett bildvattenmärke i en presentation
För att lägga till ett bildvattenmärke på en presentationsbild kan du göra följande:
InputStream imageStream = new FileInputStream("watermark.png");
IPPImage image = presentation.getImages().addImage(imageStream);
watermarkShape.getFillFormat().setFillType(FillType.Picture);
watermarkShape.getFillFormat().getPictureFillFormat().getPicture().setImage(image);
watermarkShape.getFillFormat().getPictureFillFormat().setPictureFillMode(PictureFillMode.Stretch);
Lås ett vattenmärke för redigering
Om det är nödvändigt att förhindra att ett vattenmärke redigeras, använd metoden IAutoShape.getAutoShapeLock på formen. Med denna egenskap kan du skydda formen från att väljas, ändra storlek, flyttas, grupperas med andra element, låsa dess text för redigering och mycket mer:
// Lås vattenmärkesformen från att ändras
watermarkShape.getAutoShapeLock().setSelectLocked(true);
watermarkShape.getAutoShapeLock().setSizeLocked(true);
watermarkShape.getAutoShapeLock().setTextLocked(true);
watermarkShape.getAutoShapeLock().setPositionLocked(true);
watermarkShape.getAutoShapeLock().setGroupingLocked(true);
Flytta ett vattenmärke framåt
I Aspose.Slides kan Z‑ordningen för former sättas via metoden IShapeCollection.reorder. För att göra detta måste du anropa metoden från presentationsbildlistan och skicka in formreferensen och dess ordningsnummer. På så sätt är det möjligt att flytta en form framåt eller skicka den bakåt på bilden. Denna funktion är särskilt användbar om du behöver placera ett vattenmärke framför presentationen:
int shapeCount = slide.getShapes().size();
slide.getShapes().reorder(shapeCount - 1, watermarkShape);
Ställ in vattenmärkets rotation
Här är ett kodexempel på hur du justerar rotationen av vattenmärket så att det placeras diagonalt över bilden:
double diagonalAngle = Math.atan((slideSize.getHeight() / slideSize.getWidth())) * 180 / Math.PI;
watermarkShape.setRotation((float)diagonalAngle);
Ange ett namn för ett vattenmärke
Aspose.Slides låter dig ange ett namn för en form. Genom att använda formens namn kan du i framtiden komma åt den för att ändra eller ta bort den. För att ange namnet på vattenmärkesformen, tilldela det med metoden IAutoShape.setName:
watermarkShape.setName("watermark");
Ta bort ett vattenmärke
För att ta bort vattenmärkesformen, använd metoden IAutoShape.getName för att hitta den bland bildens former. Passa sedan in vattenmärkesformen till metoden IShapeCollection.remove:
IShape[] slideShapes = slide.getShapes().toArray();
for (IShape shape : slideShapes) {
if ("watermark".equals(shape.getName()))
{
slide.getShapes().remove(watermarkShape);
}
}
FAQ
Vad är ett vattenmärke och varför bör jag använda det?
Ett vattenmärke är ett text‑ eller bildöverlagring som appliceras på bilder och som hjälper till att skydda immateriella rättigheter, stärka varumärkesigenkänning eller förhindra obehörig användning av presentationer.
Kan jag lägga till ett vattenmärke på alla bilder i en presentation?
Ja, Aspose.Slides låter dig programatiskt lägga till ett vattenmärke på varje bild i en presentation. Du kan iterera genom alla bilder och applicera vattenmärkesinställningarna individuellt.
Hur kan jag justera transparensen för vattenmärket?
Du kan justera transparensen för vattenmärket genom att ändra fyllningsinställningarna (getFillFormat) för formen. Detta säkerställer att vattenmärket är diskret och inte stör bildens innehåll.
Vilka bildformat stöds för vattenmärken?
Aspose.Slides stöder olika bildformat såsom PNG, JPEG, GIF, BMP, SVG med flera.
Kan jag anpassa typsnitt och stil för ett textvattenmärke?
Ja, du kan välja valfritt typsnitt, storlek och stil för att matcha designen på din presentation och upprätthålla varumärkeskonsekvens.
Hur ändrar jag positionen eller orienteringen av ett vattenmärke?
Du kan justera positionen och orienteringen av vattenmärket programatiskt genom att ändra formens koordinater, storlek och rotationsegenskaper.