Přidání vodoznaků do prezentací v jazyce Java

Úvod

Vodoznak v prezentaci je textová nebo obrazová značka používaná na snímku nebo na všech snímcích prezentace. Obvykle se vodoznak používá k označení, že prezentace je návrhem (např. vodoznak „Draft“), že obsahuje důvěrné informace (např. vodoznak „Confidential“), k specifikaci, ke které společnosti patří (např. vodoznak „Company Name“), k identifikaci autora prezentace a podobně. Vodoznak pomáhá předcházet porušování autorských práv tím, že naznačuje, že prezentaci nelze kopírovat. Vodoznaky se používají jak ve formátech PowerPoint, tak OpenOffice. V Aspose.Slides můžete přidat vodoznak do souborů PowerPoint PPT, PPTX i OpenOffice ODP.

V Aspose.Slides existuje několik způsobů, jak vytvořit vodoznaky v dokumentech PowerPoint nebo OpenOffice a upravit jejich design a chování. Společným prvkem je, že pro přidání textových vodoznaků byste měli použít rozhraní ITextFrame a pro přidání obrázkových vodoznaků třídu PictureFrame nebo vyplnit tvar vodoznaku obrázkem. PictureFrame implementuje rozhraní IShape, což vám umožňuje využít všech flexibilních nastavení objektu tvaru. Protože ITextFrame není tvarem a jeho nastavení jsou omezená, je zabalen do objektu IShape.

Existují dva způsoby, jak lze vodoznak použít: na jediný snímek nebo na všechny snímky prezentace. Slide Master se používá k aplikaci vodoznaku na všechny snímky – vodoznak se přidá do Slide Masteru, kompletně se zde navrhne a aplikuje na všechny snímky, aniž by to ovlivnilo možnost upravovat vodoznak na jednotlivých snímcích.

Vodoznak se obvykle považuje za needitovatelný ostatními uživateli. Pro zabránění úprav vodoznaku (nebo spíše nadřazeného tvaru vodoznaku) poskytuje Aspose.Slides funkci zamykání tvarů. Konkrétní tvar může být zamčen na běžném snímku nebo na Slide Masteru. Když je tvar vodoznaku zamčen na Slide Masteru, bude zamčen na všech snímcích prezentace.

Můžete nastavit název vodoznaku, aby ho v budoucnu šlo podle názvu najít mezi tvary snímku a případně smazat.

Vodoznak můžete navrhnout libovolně; typicky však mají vodoznaky společné rysy, jako je zarovnání na střed, rotace, umístění v popředí atd. V níže uvedených příkladech si ukážeme, jak tyto vlastnosti použít.

Textový vodoznak

Přidání textového vodoznaku na snímek

Chcete‑li přidat textový vodoznak v PPT, PPTX nebo ODP, nejprve přidejte na snímek tvar a pak tomuto tvaru přidejte textový rámec. Textový rámec představuje rozhraní ITextFrame. Tento typ není zděděný z IShape, který poskytuje širokou sadu vlastností pro flexibilní umístění vodoznaku. Proto je objekt ITextFrame zabalen do objektu IAutoShape. Pro přidání textu vodoznaku do tvaru použijte metodu addTextFrame podle níže uvedeného příkladu.

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();

Přidání textového vodoznaku do prezentace

Chcete‑li přidat textový vodoznak do celé prezentace (tj. na všechny snímky najednou), přidejte jej do MasterSlide. Zbytek logiky je stejný jako při přidávání vodoznaku na jediný snímek — vytvořte objekt IAutoShape a pak do něj vložte vodoznak 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();

Nastavení průhlednosti tvaru vodoznaku

Ve výchozím nastavení je obdélníkový tvar stylizován barvou výplně a čáry. Následující řádky kódu učiní tvar průhledným.

watermarkShape.getFillFormat().setFillType(FillType.NoFill);
watermarkShape.getLineFormat().getFillFormat().setFillType(FillType.NoFill);

Nastavení písma pro textový vodoznak

Font textového vodoznaku můžete změnit, jak je ukázáno níže.

IPortionFormat textFormat = watermarkFrame.getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat();
textFormat.setLatinFont(new FontData("Arial"));
textFormat.setFontHeight(50);

Nastavení barvy textu vodoznaku

Pro nastavení barvy textu vodoznaku použijte tento kód:

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));

Vycentrování textového vodoznaku

Vodoznak lze vycentrovat na snímku, a to následovně:

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);

Níže je zobrazen výsledek.

Textový vodoznak

Obrázkový vodoznak

Přidání obrázkového vodoznaku do prezentace

Pro přidání obrázkového vodoznaku na snímek prezentace můžete použít následující postup:

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);

Zamčení vodoznaku proti úpravám

Pokud je potřeba zabránit úpravám vodoznaku, použijte na tvar metodu IAutoShape.getAutoShapeLock . Touto vlastností můžete chránit tvar před výběrem, změnou velikosti, přesunutím, seskupením s dalšími prvky, uzamknout jeho text před úpravou a mnoho dalšího:

// Zamknout tvar vodoznaku před úpravou
watermarkShape.getAutoShapeLock().setSelectLocked(true);
watermarkShape.getAutoShapeLock().setSizeLocked(true);
watermarkShape.getAutoShapeLock().setTextLocked(true);
watermarkShape.getAutoShapeLock().setPositionLocked(true);
watermarkShape.getAutoShapeLock().setGroupingLocked(true);

Přesunutí vodoznaku dopředu

V Aspose.Slides lze pořadí tvarů (Z‑order) nastavit pomocí metody IShapeCollection.reorder . K tomu je třeba tuto metodu zavolat z kolekce snímků prezentace a předat jí odkaz na tvar a jeho požadované pořadí. Tím lze tvar přenést dopředu nebo poslat dozadu na snímku. Tato funkce se zvláště hodí, pokud chcete umístit vodoznak před obsah prezentace:

int shapeCount = slide.getShapes().size();
slide.getShapes().reorder(shapeCount - 1, watermarkShape);

Nastavení rotace vodoznaku

Následující příklad ukazuje, jak upravit rotaci vodoznaku, aby byl umístěn diagonálně napříč snímkem:

double diagonalAngle = Math.atan((slideSize.getHeight() / slideSize.getWidth())) * 180 / Math.PI;

watermarkShape.setRotation((float)diagonalAngle);

Nastavení názvu pro vodoznak

Aspose.Slides umožňuje nastavit název tvaru. Pomocí názvu tvaru jej můžete v budoucnu najít a upravit nebo smazat. Pro nastavení názvu tvaru vodoznaku použijte metodu IAutoShape.setName :

watermarkShape.setName("watermark");

Odstranění vodoznaku

Pro odstranění tvaru vodoznaku použijte metodu IAutoShape.getName k jeho vyhledání mezi tvary snímku. Poté předáte tvar vodoznaku metodě IShapeCollection.remove :

IShape[] slideShapes = slide.getShapes().toArray();
for (IShape shape : slideShapes) {
    if ("watermark".equals(shape.getName()))
    {
        slide.getShapes().remove(watermarkShape);
    }
}

Často kladené otázky

Co je vodoznak a proč jej použít?

Vodoznak je textová nebo obrázková překrytí aplikovaná na snímky, která pomáhá chránit duševní vlastnictví, zvyšovat povědomí o značce nebo zabraňovat neoprávněnému používání prezentací.

Mohu přidat vodoznak na všechny snímky v prezentaci?

Ano, Aspose.Slides umožňuje programově přidat vodoznak na každý snímek v prezentaci. Můžete iterovat přes všechny snímky a aplikovat nastavení vodoznaku individuálně.

Jak mohu upravit průhlednost vodoznaku?

Průhlednost vodoznaku můžete upravit změnou nastavení výplně (getFillFormat) tvaru. Tím zajistíte, že vodoznak bude decentní a nebude rušit obsah snímku.

Jaké formáty obrázků jsou pro vodoznaky podporovány?

Aspose.Slides podporuje různé formáty obrázků, jako jsou PNG, JPEG, GIF, BMP, SVG a další.

Mohu přizpůsobit font a styl textového vodoznaku?

Ano, můžete zvolit libovolný font, velikost a styl, aby odpovídaly designu vaší prezentace a zachovaly konzistenci značky.

Jak změním umístění nebo orientaci vodoznaku?

Umístění a orientaci vodoznaku můžete programově upravit změnou souřadnic, velikosti a vlastností rotace tvaru.