Dodawanie znaków wodnych do prezentacji na Androidzie
Wstęp
Znak wodny w prezentacji to znak tekstowy lub graficzny umieszczany na slajdzie lub we wszystkich slajdach prezentacji. Zazwyczaj znak wodny służy do wskazania, że prezentacja jest wersją roboczą (np. znak „Draft”), zawiera informacje poufne (np. znak „Confidential”), określenia, do której firmy należy (np. znak „Company Name”), identyfikacji autora prezentacji itp. Znak wodny pomaga zapobiegać naruszeniom praw autorskich, wskazując, że prezentacja nie powinna być kopiowana. Znaki wodne są używane zarówno w formatach PowerPoint, jak i OpenOffice. W Aspose.Slides możesz dodać znak wodny do plików PowerPoint PPT, PPTX oraz OpenOffice ODP.
W Aspose.Slides istnieje wiele sposobów tworzenia znaków wodnych w dokumentach PowerPoint lub OpenOffice oraz modyfikowania ich wyglądu i zachowania. Wspólnym elementem jest to, że aby dodać tekstowy znak wodny, należy użyć interfejsu ITextFrame, a aby dodać graficzny znak wodny, użyć klasy PictureFrame lub wypełnić kształt znaku wodnego obrazem. PictureFrame implementuje interfejs IShape, co umożliwia korzystanie ze wszystkich elastycznych ustawień obiektu kształtu. Ponieważ ITextFrame nie jest kształtem i ma ograniczone możliwości konfiguracji, jest on opakowywany w obiekt IShape.
Znak wodny może być zastosowany na dwa sposoby: do pojedynczego slajdu lub do wszystkich slajdów prezentacji. Do zastosowania znaku wodnego we wszystkich slajdach używa się Slide Master — znak wodny jest dodawany do Slide Master, w pełni projektowany tam i stosowany do wszystkich slajdów, nie wpływając na możliwość modyfikacji znaku wodnego na poszczególnych slajdach.
Znak wodny jest zazwyczaj traktowany jako nieedytowalny przez innych użytkowników. Aby zapobiec edycji (a właściwie edycji rodzica znaku wodnego), Aspose.Slides udostępnia funkcję blokowania kształtów. Konkretny kształt może być zablokowany na normalnym slajdzie lub na Slide Master. Gdy kształt znaku wodnego jest zablokowany na Slide Master, jest on zablokowany na wszystkich slajdach prezentacji.
Możesz nadać znakowi wodnemu nazwę, aby w przyszłości, gdy zechcesz go usunąć, móc odnaleźć go w kolekcji kształtów slajdu po nazwie.
Znak wodny możesz zaprojektować dowolnie; jednak zazwyczaj posiada wspólne cechy, takie jak wyśrodkowanie, obrót, pozycja na przodzie itp. Poniżej pokażemy, jak je wykorzystać w przykładach.
Znak wodny tekstowy
Dodanie tekstowego znaku wodnego do slajdu
Aby dodać tekstowy znak wodny w PPT, PPTX lub ODP, najpierw możesz dodać kształt do slajdu, a następnie dodać do tego kształtu ramkę tekstową. Ramka tekstowa jest reprezentowana przez interfejs ITextFrame. Ten typ nie dziedziczy po IShape, który posiada szeroki zestaw właściwości umożliwiających elastyczne pozycjonowanie znaku wodnego. Dlatego obiekt ITextFrame jest opakowywany w obiekt IAutoShape. Aby dodać tekst znaku wodnego do kształtu, użyj metody addTextFrame zgodnie z poniższym przykładem.
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();
Zobacz także
Dodanie tekstowego znaku wodnego do całej prezentacji
Jeśli chcesz dodać tekstowy znak wodny do całej prezentacji (czyli do wszystkich slajdów jednocześnie), dodaj go do MasterSlide. Reszta logiki jest taka sama, jak przy dodawaniu znaku wodnego do pojedynczego slajdu — utwórz obiekt IAutoShape i następnie dodaj do niego znak wodny za pomocą metody 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();
Zobacz także
Ustawienie przezroczystości kształtu znaku wodnego
Domyślnie kształt prostokąta jest stylizowany kolorem wypełnienia i obramowania. Poniższe linie kodu sprawiają, że kształt staje się przezroczysty.
watermarkShape.getFillFormat().setFillType(FillType.NoFill);
watermarkShape.getLineFormat().getFillFormat().setFillType(FillType.NoFill);
Ustawienie czcionki dla tekstowego znaku wodnego
Możesz zmienić czcionkę tekstowego znaku wodnego, jak pokazano poniżej.
IPortionFormat textFormat = watermarkFrame.getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat();
textFormat.setLatinFont(new FontData("Arial"));
textFormat.setFontHeight(50);
Ustawienie koloru tekstu znaku wodnego
Aby ustawić kolor tekstu znaku wodnego, użyj następującego kodu:
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(Color.argb(alpha, red, green, blue));
Wyśrodkowanie tekstowego znaku wodnego
Możliwe jest wyśrodkowanie znaku wodnego na slajdzie; w tym celu wykonaj następujące kroki:
SizeF 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);
Poniższy obraz pokazuje efekt końcowy.

Znak wodny graficzny
Dodanie graficznego znaku wodnego do prezentacji
Aby dodać graficzny znak wodny do slajdu prezentacji, możesz wykonać następujące czynności:
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);
Zablokowanie znaku wodnego przed edycją
Jeśli konieczne jest uniemożliwienie edycji znaku wodnego, użyj metody IAutoShape.getAutoShapeLock na kształcie. Za pomocą tej właściwości możesz chronić kształt przed zaznaczaniem, zmianą rozmiaru, przemieszczaniem, grupowaniem z innymi elementami, blokowaniem tekstu przed edycją i wieloma innymi operacjami:
// Zablokuj kształt znaku wodnego przed modyfikacją
watermarkShape.getAutoShapeLock().setSelectLocked(true);
watermarkShape.getAutoShapeLock().setSizeLocked(true);
watermarkShape.getAutoShapeLock().setTextLocked(true);
watermarkShape.getAutoShapeLock().setPositionLocked(true);
watermarkShape.getAutoShapeLock().setGroupingLocked(true);
Przeniesienie znaku wodnego na przód
W Aspose.Slides kolejność Z‑order kształtów można ustawić za pomocą metody IShapeCollection.reorder. Aby to zrobić, wywołaj tę metodę z listy slajdów prezentacji, przekazując referencję do kształtu oraz jego numer kolejności. Dzięki temu możesz przenieść kształt na przód lub wysłać go na tył slajdu. Funkcja jest szczególnie przydatna, gdy chcesz umieścić znak wodny przed zawartością prezentacji:
int shapeCount = slide.getShapes().size();
slide.getShapes().reorder(shapeCount - 1, watermarkShape);
Ustawienie obrotu znaku wodnego
Poniżej przykład kodu pokazujący, jak dostosować obrót znaku wodnego, aby był ustawiony ukośnie na slajdzie:
double diagonalAngle = Math.atan((slideSize.getHeight() / slideSize.getWidth())) * 180 / Math.PI;
watermarkShape.setRotation((float)diagonalAngle);
Nadanie nazwy znakowi wodnemu
Aspose.Slides umożliwia nadanie nazwy kształtowi. Korzystając z nazwy kształtu, możesz w przyszłości uzyskać do niego dostęp w celu modyfikacji lub usunięcia. Aby ustawić nazwę kształtu znaku wodnego, przypisz ją metodzie IAutoShape.setName:
watermarkShape.setName("watermark");
Usunięcie znaku wodnego
Aby usunąć kształt znaku wodnego, użyj metody IAutoShape.getName w celu odnalezienia go w kolekcji kształtów slajdu. Następnie przekaż kształt znaku wodnego do metody IShapeCollection.remove:
IShape[] slideShapes = slide.getShapes().toArray();
for (IShape shape : slideShapes) {
if ("watermark".equals(shape.getName()))
{
slide.getShapes().remove(watermarkShape);
}
}
FAQ
Czym jest znak wodny i dlaczego warto go używać?
Znak wodny to nakładka tekstowa lub graficzna stosowana na slajdach, która pomaga chronić własność intelektualną, zwiększać rozpoznawalność marki lub zapobiegać nieautoryzowanemu użyciu prezentacji.
Czy mogę dodać znak wodny do wszystkich slajdów w prezentacji?
Tak, Aspose.Slides umożliwia programowe dodanie znaku wodnego do każdego slajdu w prezentacji. Możesz iterować po wszystkich slajdach i zastosować ustawienia znaku wodnego indywidualnie.
Jak mogę dostosować przezroczystość znaku wodnego?
Przezroczystość znaku wodnego możesz regulować, modyfikując ustawienia wypełnienia (getFillFormat) kształtu. Dzięki temu znak wodny będzie subtelny i nie będzie rozpraszał uwagi od treści slajdu.
Jakie formaty obrazów są obsługiwane dla znaków wodnych?
Aspose.Slides obsługuje różne formaty obrazów, takie jak PNG, JPEG, GIF, BMP, SVG i inne.
Czy mogę dostosować czcionkę i styl tekstowego znaku wodnego?
Tak, możesz wybrać dowolną czcionkę, rozmiar i styl, aby dopasować znak wodny do projektu prezentacji i zachować spójność marki.
Jak zmienić pozycję lub orientację znaku wodnego?
Pozycję i orientację znaku wodnego możesz programowo zmienić, modyfikując współrzędne, rozmiar oraz właściwość obrotu kształtu.