Menambahkan Watermark ke Presentasi dalam C++

Pendahuluan

Watermark dalam sebuah presentasi adalah stempel teks atau gambar yang digunakan pada satu slide atau pada semua slide presentasi. Biasanya, watermark digunakan untuk menunjukkan bahwa presentasi tersebut masih draft (misalnya watermark “Draft”), bahwa berisi informasi rahasia (misalnya watermark “Confidential”), untuk menentukan perusahaan mana yang memilikinya (misalnya watermark “Company Name”), untuk mengidentifikasi penulis presentasi, dll. Watermark membantu mencegah pelanggaran hak cipta dengan menunjukkan bahwa presentasi tidak boleh disalin. Watermark digunakan dalam format presentasi PowerPoint dan OpenOffice. Dalam Aspose.Slides, Anda dapat menambahkan watermark ke format file PowerPoint PPT, PPTX, dan OpenOffice ODP.

Di Aspose.Slides, terdapat berbagai cara untuk membuat watermark dalam dokumen PowerPoint atau OpenOffice dan memodifikasi desain serta perilakunya. Aspek umum adalah untuk menambahkan watermark teks, Anda harus menggunakan antarmuka ITextFrame, dan untuk menambahkan watermark gambar, gunakan kelas PictureFrame atau isi bentuk watermark dengan gambar. PictureFrame mengimplementasikan antarmuka IShape, memungkinkan Anda menggunakan semua pengaturan fleksibel dari objek bentuk. Karena ITextFrame bukan bentuk dan pengaturannya terbatas, ia dibungkus ke dalam objek IShape.

Ada dua cara untuk menerapkan watermark: pada satu slide atau pada semua slide presentasi. Slide Master digunakan untuk menerapkan watermark ke semua slide presentasi — watermark ditambahkan ke Slide Master, sepenuhnya dirancang di sana, dan diterapkan ke semua slide tanpa mempengaruhi izin untuk memodifikasi watermark pada slide individu.

Watermark biasanya dianggap tidak dapat diedit oleh pengguna lain. Untuk mencegah watermark (atau lebih tepatnya bentuk induk watermark) agar tidak diedit, Aspose.Slides menyediakan fungsi penguncian bentuk. Sebuah bentuk tertentu dapat dikunci pada slide biasa atau pada Slide Master. Ketika bentuk watermark dikunci pada Slide Master, ia akan terkunci pada semua slide presentasi.

Anda dapat menetapkan nama untuk watermark sehingga di masa mendatang, jika ingin menghapusnya, Anda dapat menemukannya di bentuk-bentuk slide berdasarkan nama.

Anda dapat merancang watermark dengan cara apa pun; namun biasanya ada fitur umum pada watermark, seperti perataan tengah, rotasi, posisi di depan, dll. Kami akan menunjukkan cara menggunakan ini dalam contoh di bawah.

Watermark Teks

Menambahkan Watermark Teks ke Slide

Untuk menambahkan watermark teks dalam PPT, PPTX, atau ODP, Anda dapat pertama-tama menambahkan sebuah bentuk ke slide, lalu menambahkan sebuah frame teks ke bentuk tersebut. Frame teks diwakili oleh antarmuka ITextFrame. Tipe ini tidak mewarisi dari IShape, yang memiliki banyak properti untuk memposisikan watermark secara fleksibel. Oleh karena itu, objek ITextFrame dibungkus dalam objek IAutoShape. Untuk menambahkan teks watermark ke bentuk, gunakan metode AddTextFrame seperti ditunjukkan di bawah.

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

Menambahkan Watermark Teks ke Presentasi

Jika Anda ingin menambahkan watermark teks ke seluruh presentasi (yaitu semua slide sekaligus), tambahkan ke MasterSlide. Logika selanjutnya sama seperti menambahkan watermark ke satu slide — buat objek IAutoShape dan kemudian tambahkan watermark ke dalamnya menggunakan metode AddTextFrame.

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

Mengatur Transparansi Bentuk Watermark

Secara default, bentuk persegi panjang memiliki warna isi dan garis. Baris kode berikut membuat bentuk menjadi transparan.

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

Mengatur Font untuk Watermark Teks

Anda dapat mengubah font watermark teks seperti yang ditunjukkan di bawah.

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

Mengatur Warna Teks Watermark

Untuk mengatur warna teks watermark, gunakan kode berikut:

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

Menengahkan Watermark Teks

Anda dapat menengahkan watermark pada slide, dan untuk itu, lakukan hal berikut:

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

Gambar di bawah menunjukkan hasil akhir.

Watermark teks

Watermark Gambar

Menambahkan Watermark Gambar ke Presentasi

Untuk menambahkan watermark gambar ke slide presentasi, Anda dapat melakukan hal berikut:

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

Mengunci Watermark agar Tidak Diedit

Jika perlu mencegah watermark agar tidak diedit, gunakan metode IAutoShape::get_AutoShapeLock pada bentuk. Dengan properti ini, Anda dapat melindungi bentuk dari pemilihan, perubahan ukuran, pemindahan, pengelompokan dengan elemen lain, mengunci teksnya dari penyuntingan, dan banyak lagi:

// Kunci bentuk watermark agar tidak dapat diubah
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);

Membawa Watermark ke Depan

Dalam Aspose.Slides, urutan Z bentuk dapat diatur melalui metode IShapeCollection::Reorder. Untuk melakukannya, Anda perlu memanggil metode ini dari daftar slide presentasi dan menyertakan referensi bentuk serta nomor urutannya ke dalam metode. Dengan cara ini, Anda dapat membawa bentuk ke depan atau mengirimnya ke belakang slide. Fitur ini sangat berguna jika Anda perlu menempatkan watermark di depan presentasi:

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

Mengatur Rotasi Watermark

Berikut contoh kode cara mengatur rotasi watermark sehingga posisinya diagonal melintasi slide:

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

watermarkShape->set_Rotation((float)diagonalAngle);

Menetapkan Nama untuk Watermark

Aspose.Slides memungkinkan Anda menetapkan nama pada sebuah bentuk. Dengan menggunakan nama bentuk, Anda dapat mengaksesnya di masa depan untuk memodifikasi atau menghapusnya. Untuk menetapkan nama pada bentuk watermark, berikan ke metode IAutoShape::set_Name:

watermarkShape->set_Name(u"watermark");

Menghapus Watermark

Untuk menghapus bentuk watermark, gunakan metode IAutoShape::get_Name untuk menemukannya di bentuk-bentuk slide. Kemudian, berikan bentuk watermark ke metode IShapeCollection::Remove:

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

Contoh Langsung

Anda mungkin ingin melihat Aspose.Slides free Add Watermark dan Remove Watermark alat daring.

Alat daring untuk menambah dan menghapus watermark

FAQ

Apa itu watermark dan mengapa saya harus menggunakannya?

Watermark adalah lapisan teks atau gambar yang diterapkan pada slide yang membantu melindungi hak kekayaan intelektual, meningkatkan pengenalan merek, atau mencegah penggunaan presentasi yang tidak sah.

Apakah saya dapat menambahkan watermark ke semua slide dalam sebuah presentasi?

Ya, Aspose.Slides memungkinkan Anda menambahkan watermark secara programatik ke setiap slide dalam sebuah presentasi. Anda dapat mengiterasi semua slide dan menerapkan pengaturan watermark secara individual.

Bagaimana cara menyesuaikan transparansi watermark?

Anda dapat menyesuaikan transparansi watermark dengan memodifikasi pengaturan isi (FillFormat) pada bentuk. Hal ini memastikan watermark terlihat halus dan tidak mengalihkan perhatian dari konten slide.

Format gambar apa yang didukung untuk watermark?

Aspose.Slides mendukung berbagai format gambar seperti PNG, JPEG, GIF, BMP, SVG, dan lainnya.

Apakah saya dapat menyesuaikan font dan gaya watermark teks?

Ya, Anda dapat memilih font, ukuran, dan gaya apa pun untuk menyesuaikan desain presentasi Anda dan mempertahankan konsistensi merek.

Bagaimana cara mengubah posisi atau orientasi watermark?

Anda dapat menyesuaikan posisi dan orientasi watermark secara programatik dengan memodifikasi koordinat, ukuran, dan properti rotasi bentuk.