Vízjelek hozzáadása prezentációkhoz PHP-ben

Bevezetés

A vízjel egy prezentációban szöveges vagy képes pecsét, amely egy dián vagy az összes prezentációs dián használható. Általában a vízjelet arra használják, hogy jelezze, hogy a prezentáció vázlat (például „Draft” vízjel), bizalmas információt tartalmaz („Confidential” vízjel), megadja, melyik vállalathoz tartozik („Company Name” vízjel), azonosítsa a prezentáció szerzőjét stb. A vízjel segít megakadályozni a szerzői jogi megsértéseket azzal, hogy jelzi, a prezentációt nem szabad másolni. A vízjelek a PowerPoint és az OpenOffice prezentációs formátumokban egyaránt használatosak. Az Aspose.Slides‑ben vízjelet adhat hozzá a PowerPoint PPT, PPTX és az OpenOffice ODP fájlformátumokhoz.

Az Aspose.Slides‑ban többféle módon hozhat létre vízjeleket PowerPoint vagy OpenOffice dokumentumokban, és módosíthatja azok formáját és viselkedését. A közös pont az, hogy szöveges vízjelek hozzáadásához a TextFrame osztályt kell használni, képes vízjelekhez pedig a PictureFrame osztályt, vagy egy kép kitöltésével a vízjel alakzatot. A PictureFrame a Shape osztályt valósítja meg, lehetővé téve az alakzat objektum minden rugalmas beállításának használatát. Mivel az ITextFrame nem alakzat, és beállításai korlátozottak, egy Shape objektumba van becsomagolva.

Két módon lehet vízjelet alkalmazni: egyetlen diára vagy az összes prezentációs diára. A Diamester (Slide Master) használható a vízjel minden diára történő alkalmazásához – a vízjelet a Diamesterhez adják, ott teljesen megtervezik, és minden diára alkalmazzák, anélkül, hogy befolyásolja az egyes diákon a vízjel módosításának jogát.

A vízjelet általában úgy tekintik, hogy más felhasználók nem szerkeszthetik. A vízjel (pontosabban a vízjel szülő alakzata) szerkesztésének megakadályozásához az Aspose.Slides alakzatzárolási funkciót biztosít. Egy adott alakzatot zárolhatunk egy normál dián vagy a Diamesteren. Ha a vízjel alakzat a Diamesteren van zárolva, akkor minden prezentációs dián zárolt lesz.

Megadhatja a vízjel nevét, így a jövőben, ha törölni szeretné, a dia alakzatai között név alapján megtalálhatja.

A vízjelet bármilyen módon megtervezheti; azonban általában vannak közös jellemzők, mint a középre igazítás, forgatás, elülső pozíció stb. Az alábbi példákban bemutatjuk, hogyan használhatók ezek.

Szöveges vízjel

Szöveges vízjel hozzáadása egy diára

A szöveges vízjel PPT, PPTX vagy ODP formátumban való hozzáadásához először alakzatot kell hozzáadni a diához, majd szöveges keretet ehhez az alakzathoz. A szöveges keretet a TextFrame osztály képviseli. Ez a típus nem örököl a Shape osztályból, amelynek széles tulajdonságkészlete van a vízjel rugalmas pozicionálásához. Ezért a TextFrame objektum egy AutoShape objektumba van becsomagolva. A vízjel szövegének hozzáadásához az alakzathoz használja a addTextFrame metódust az alábbiak szerint.

$watermarkText = "CONFIDENTIAL";

$presentation = new Presentation();
$slide = $presentation->getSlides()->get_Item(0);

$watermarkShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 100, 100, 400, 40);
$watermarkFrame = $watermarkShape->addTextFrame($watermarkText);

$presentation->dispose();

Szöveges vízjel hozzáadása egy prezentációhoz

Ha a teljes prezentációhoz (azaz egyszerre az összes diára) szeretne szöveges vízjelet hozzáadni, adja hozzá a MasterSlide‑hez. A logika ugyanaz, mint egyetlen diára történő vízjel hozzáadásakor – hozzon létre egy AutoShape objektumot, majd a addTextFrame metódussal adja hozzá a vízjelet.

$watermarkText = "CONFIDENTIAL";

$presentation = new Presentation();
$masterSlide = $presentation->getMasters()->get_Item(0);

$watermarkShape = $masterSlide->getShapes()->addAutoShape(ShapeType::Rectangle, 100, 100, 400, 40);
$watermarkFrame = $watermarkShape->addTextFrame($watermarkText);

$presentation->dispose();

A vízjel alakzat átlátszóságának beállítása

Alapértelmezés szerint a téglalap alakzat kitöltő- és vonalszínekkel van formázva. A következő kódsorok átlátszóvá teszik az alakzatot.

$watermarkShape->getFillFormat()->setFillType(FillType::NoFill);
$watermarkShape->getLineFormat()->getFillFormat()->setFillType(FillType::NoFill);

A szöveges vízjel betűtípusának beállítása

Az alább látható módon megváltoztathatja a szöveges vízjel betűtípusát.

$textFormat = $watermarkFrame->getParagraphs()->get_Item(0)->getParagraphFormat()->getDefaultPortionFormat();
$textFormat->setLatinFont(new FontData("Arial"));
$textFormat->setFontHeight(50);

A vízjel szövegének színének beállítása

A vízjel szövegének színének beállításához használja ezt a kódot:

$alpha = 150;
$red = 200;
$green = 200;
$blue = 200;
$textColor = new Java("java.awt.Color", $red, $green, $blue, $alpha);

$fillFormat = $watermarkFrame->getParagraphs()->get_Item(0)->getParagraphFormat()->getDefaultPortionFormat()->getFillFormat();
$fillFormat->setFillType(FillType::Solid);
$fillFormat->getSolidFillColor()->setColor($textColor);

Szöveges vízjel középre helyezése

Lehetőség van a vízjel középre helyezésére egy dián, ehhez a következőket teheti:

$slideSize = $presentation->getSlideSize()->getSize();
$slideWidth = java_values($slideSize->getWidth());
$slideHeight = java_values($slideSize->getHeight());

$watermarkWidth = 400;
$watermarkHeight = 40;
$watermarkX = ($slideWidth - $watermarkWidth) / 2;
$watermarkY = ($slideHeight - $watermarkHeight) / 2;

$watermarkShape = $slide->getShapes()->addAutoShape(
        ShapeType::Rectangle, $watermarkX, $watermarkY, $watermarkWidth, $watermarkHeight);

$watermarkFrame = $watermarkShape->addTextFrame($watermarkText);

Az alábbi kép mutatja a végső eredményt.

A szöveges vízjel

Képes vízjel

Képes vízjel hozzáadása egy prezentációhoz

Képes vízjel hozzáadásához egy prezentációs diához a következőket teheti:

$image = Images::fromFile("watermark.png");
$picture = $presentation->getImages()->addImage($image);
$image->dispose();

$watermarkShape->getFillFormat()->setFillType(FillType::Picture);
$watermarkShape->getFillFormat()->getPictureFillFormat()->getPicture()->setImage($picture);
$watermarkShape->getFillFormat()->getPictureFillFormat()->setPictureFillMode(PictureFillMode::Stretch);

Vízjel szerkesztés elleni zárolása

Ha szükséges megakadályozni a vízjel szerkesztését, használja a AutoShape.getAutoShapeLock metódust az alakzaton. Ezzel a tulajdonsággal megvédheti az alakzatot a kijelöléstől, átméretezéstől, áthelyezéstől, más elemekkel való csoportosítástól, a szöveg szerkesztésétől, és még sok mástól:

// Zárolja a vízjel alakzatot a módosítástól
$watermarkShape->getAutoShapeLock()->setSelectLocked(true);
$watermarkShape->getAutoShapeLock()->setSizeLocked(true);
$watermarkShape->getAutoShapeLock()->setTextLocked(true);
$watermarkShape->getAutoShapeLock()->setPositionLocked(true);
$watermarkShape->getAutoShapeLock()->setGroupingLocked(true);

Vízjel előre hozása

Az Aspose.Slides‑ban az alakzatok Z-sorrendjét a ShapeCollection.reorder metódussal állíthatja be. Ehhez a metódust a prezentáció diáinak listájáról kell meghívni, és átadni a alakzat hivatkozását és a sorrendi számát. Így egy alakzatot előre hozhat, vagy hátra küldhet a dián. Ez a funkció különösen hasznos, ha a vízjelet a prezentáció előterébe kell helyezni:

$shapeCount = java_values($slide->getShapes()->size());
$slide->getShapes()->reorder($shapeCount - 1, $watermarkShape);

A vízjel forgatásának beállítása

Az alábbi kódrészlet bemutatja, hogyan állítható be a vízjel forgása úgy, hogy átlósan helyezkedjen el a dián:

$diagonalAngle = atan($slideWidth / $slideHeight) * 180 / M_PI;

$watermarkShape->setRotation($diagonalAngle);

A vízjel nevének beállítása

Az Aspose.Slides lehetővé teszi egy alakzat nevének beállítását. A forma nevét felhasználva a jövőben módosíthatja vagy törölheti azt. A vízjel alakzat nevének beállításához adja át a AutoShape.setName metódusnak:

$watermarkShape->setName("watermark");

Vízjel eltávolítása

A vízjel alakzat eltávolításához használja a AutoShape.getName metódust a dia alakzatai között való megtaláláshoz. Ezután adja át a vízjel alakzatot a ShapeCollection.remove metódusnak:

$slideShapes = $slide->getShapes()->toArray();
foreach ($slideShapes as $shape) {
    if ($shape->getName() === "watermark") {
        $slide->getShapes()->remove($shape);
    }
}

GYIK

Mi az a vízjel és miért kellene használnom?

A vízjel egy szöveges vagy képes átfedés, amely a diákra kerül, és segít megvédeni a szellemi tulajdont, erősíti a márka felismerhetőségét, vagy megakadályozza a prezentációk jogosulatlan használatát.

Hozzáadhatok vízjelet az összes diához egy prezentációban?

Igen, az Aspose.Slides lehetővé teszi, hogy programozott módon vízjelet adjon minden diához egy prezentációban. Végig iterálhat a diákon, és egyenként alkalmazhatja a vízjel beállításait.

Hogyan állíthatom be a vízjel átlátszóságát?

A vízjel átlátszóságát a forma kitöltési beállításainak (getFillFormat) módosításával állíthatja be. Ez biztosítja, hogy a vízjel finom legyen, és ne vonja el a figyelmet a dia tartalmáról.

Milyen képformátumok támogatottak a vízjelekhez?

Az Aspose.Slides számos képformátumot támogat, például PNG, JPEG, GIF, BMP, SVG és továbbiakat.

Testreszabhatom a szöveges vízjel betűtípusát és stílusát?

Igen, tetszőleges betűtípust, méretet és stílust választhat, hogy illeszkedjen a prezentáció tervezéséhez és megőrizze a márka konzisztenciáját.

Hogyan változtathatom meg egy vízjel pozícióját vagy tájolását?

A vízjel pozícióját és tájolását programozottan a forma koordinátáinak, méretének és forgatási tulajdonságainak módosításával állíthatja be.