Vízjelek hozzáadása prezentációkhoz C++-ban

Bevezetés

A vízjel egy prezentációban egy szöveges vagy képes pecsét, amelyet egy dián vagy az összes prezentációs dián alkalmaznak. Általában a vízjelet arra használják, hogy jelezzék, hogy a prezentáció vázlat (pl. „Draft” vízjel), hogy bizalmas információkat tartalmaz (pl. „Confidential” vízjel), megadja, melyik céghez tartozik (pl. „Company Name” vízjel), az előadó azonosítására stb. A vízjel segít megelőzni a szerzői jogi jogsértéseket, mivel jelzi, hogy 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 segítségével vízjelet adhat hozzá a PowerPoint PPT, PPTX és az OpenOffice ODP fájlformátumokhoz.

Az Aspose.Slides többféle módot kínál a vízjelek létrehozására PowerPoint vagy OpenOffice dokumentumokban, valamint a tervezésük és viselkedésük módosítására. A közös szempont, hogy szöveges vízjelek hozzáadásához használja az ITextFrame interfészt, képes vízjelekhez pedig a PictureFrame osztályt, vagy egy alakzat kitöltését képpel. A PictureFrame a IShape interfészt valósítja meg, így az alakzat objektum összes rugalmas beállítását használhatja. Mivel az ITextFrame nem alakzat és beállításai korlátozottak, egy IShape objektumba van csomagolva.

Két módja van a vízjel alkalmazásának: egyetlen diára vagy az összes diára. A Dia mester (Slide Master) használható a vízjel az összes dián való alkalmazásához – a vízjel a Dia mesterhez kerül hozzáadásra, ott teljesen megtervezésre, és minden diára alkalmazásra kerül anélkül, hogy befolyásolná a vízjel egyedi diákon való módosításának lehetőségét.

A vízjelet általában nem lehet szerkeszteni más felhasználók számára. A vízjel (pontosabban a vízjel szülő alakzata) szerkesztésének megakadályozásához az Aspose.Slides alakzat zárolási funkciót biztosít. Egy adott alakzat lezárható egy normál dián vagy a Dia mesteren. Ha a vízjel alakzat a Dia mesteren zárolva van, minden prezentációs dián le lesz zárolva.

Beállíthat nevet a vízjelnek, hogy a jövőben, ha törölni szeretné, megtalálja a diák alakzatai között név alapján.

A vízjelet bármilyen módon megtervezheti; azonban általában közös jellemzőik vannak, mint a középre igazítás, forgatás, előre helyezés 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 hozzáadásához PPT, PPTX vagy ODP formátumban először egy alakzatot kell hozzáadni a diához, majd egy szövegkeretet ehhez az alakzathoz. A szövegkeret a ITextFrame interfész által képviselt. Ez a típus nem öröklődik a IShape‑től, amely széles körű tulajdonságokkal rendelkezik a vízjel rugalmas pozicionálásához. Ezért a ITextFrame objektum egy IAutoShape objektumba van csomagolva. A vízjel szövegének hozzáadásához használja a AddTextFrame metódust az alábbiak szerint.

auto watermarkText = u"CONFIDENTIAL";

auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto watermarkShape = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 100, 100, 400, 40);
auto watermarkFrame = watermarkShape->AddTextFrame(watermarkText);

presentation->Dispose();

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

Ha egy szöveges vízjelet szeretne hozzáadni az egész prezentációhoz (azaz egyszerre az összes diához), adja hozzá a MasterSlide-hez. A többi logika megegyezik az egyedi diára való vízjel hozzáadásával – hozzon létre egy IAutoShape objektumot, majd adja hozzá a vízjelet a AddTextFrame metódussal.

auto watermarkText = u"CONFIDENTIAL";

auto presentation = MakeObject<Presentation>();
auto masterSlide = presentation->get_Master(0);

auto watermarkShape = masterSlide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 100, 100, 400, 40);
auto 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ési és vonalszínekhez van stilizálva. A következő kódsorok teszik az alakzatot átlátszóvá.

watermarkShape->get_FillFormat()->set_FillType(FillType::NoFill);
watermarkShape->get_LineFormat()->get_FillFormat()->set_FillType(FillType::NoFill);

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

Az alábbiak szerint módosíthatja a szöveges vízjel betűtípusát.

auto textFormat = watermarkFrame->get_Paragraph(0)->get_ParagraphFormat()->get_DefaultPortionFormat();
textFormat->set_LatinFont(MakeObject<FontData>(u"Arial"));
textFormat->set_FontHeight(50);

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

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

auto alpha = 150, red = 200, green = 200, blue = 200;

auto fillFormat = watermarkFrame->get_Paragraph(0)->get_ParagraphFormat()->get_DefaultPortionFormat()->get_FillFormat();
fillFormat->set_FillType(FillType::Solid);
fillFormat->get_SolidFillColor()->set_Color(Color::FromArgb(alpha, red, green, blue));

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

Lehetséges a vízjelet középre helyezni egy dián, ehhez tegye a következőt:

auto slideSize = presentation->get_SlideSize()->get_Size();

auto watermarkWidth = 400;
auto watermarkHeight = 40;
auto watermarkX = (slideSize.get_Width() - watermarkWidth) / 2;
auto watermarkY = (slideSize.get_Height() - watermarkHeight) / 2;

auto watermarkShape = slide->get_Shapes()->AddAutoShape(
    ShapeType::Rectangle, watermarkX, watermarkY, watermarkWidth, watermarkHeight);

auto 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ára a következőket teheti:

auto imageStream = File::ReadAllBytes(u"watermark.png");
auto image = presentation->get_Images()->AddImage(imageStream);

watermarkShape->get_FillFormat()->set_FillType(FillType::Picture);
watermarkShape->get_FillFormat()->get_PictureFillFormat()->get_Picture()->set_Image(image);
watermarkShape->get_FillFormat()->get_PictureFillFormat()->set_PictureFillMode(PictureFillMode::Stretch);

Vízjel szerkesztésének letiltása

Ha szükséges megakadályozni a vízjel szerkesztését, használja a IAutoShape::get_AutoShapeLock metódust az alakzaton. Ezzel a tulajdonsággal megvédheti az alakzatot a kiválasztá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:

// A vízjel alakzatot a módosítástól zárolja
watermarkShape->get_AutoShapeLock()->set_SelectLocked(true);
watermarkShape->get_AutoShapeLock()->SizeLocked(true);
watermarkShape->get_AutoShapeLock()->TextLocked(true);
watermarkShape->get_AutoShapeLock()->PositionLocked(true);
watermarkShape->get_AutoShapeLock()->GroupingLocked(true);

Vízjel előre hozatala

Az Aspose.Slides-ben az alakzatok Z-sorrendje a IShapeCollection::Reorder metódussal állítható be. Ehhez hívja meg ezt a metódust a prezentáció diáinak listájáról, és adja át az alakzat hivatkozását és a kívánt sorrendszámot. Í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ó elejére szeretné helyezni:

auto shapeCount = slide->get_Shapes()->get_Count();
slide->get_Shapes()->Reorder(shapeCount - 1, watermarkShape);

Vízjel forgatásának beállítása

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

auto diagonalAngle = Math::Atan((slideSize.get_Height() / slideSize.get_Width())) * 180 / Math::PI;

watermarkShape->set_Rotation((float)diagonalAngle);

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 elérheti, módosíthatja vagy törölheti azt. A vízjel alakzat nevének beállításához rendelje a IAutoShape::set_Name metódusnak:

watermarkShape->set_Name(u"watermark");

Vízjel eltávolítása

A vízjel alakzat eltávolításához használja a IAutoShape::get_Name metódust a diák alakzatai között való megtalálásához. Ezután adja át a vízjel alakzatot a IShapeCollection::Remove metódusnak:

auto slideShapes = slide->get_Shapes()->ToArray();
for(auto shape : slideShapes)
{
    if (String::Compare(shape->get_Name(), u"watermark", StringComparison::Ordinal) == 0)
    {
        slide->get_Shapes()->Remove(watermarkShape);
    }
}

Élő példa

Érdemes kipróbálni az Aspose.Slides free Vízjel hozzáadása és Vízjel eltávolítása online eszközöket.

Online eszközök a vízjelek hozzáadásához és eltávolításához

GYIK

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

A vízjel egy szöveges vagy képes átfedés, amely a diákon kerül alkalmazásra, é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 programozottan képes vízjelet hozzáadni minden diához egy prezentációban. Végigiterálhat az összes dián, és egyenként alkalmazhatja a vízjel beállításait.

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

Az átlátszóságot a forma kitöltési beállításainak (FillFormat) 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 több képformátumot támogat, például PNG, JPEG, GIF, BMP, SVG és még sok más.

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

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

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

Programozottan a forma koordinátáit, méretét és forgatási tulajdonságait módosítva állíthatja be a vízjel pozícióját és tájolását.