افزودن واترمارک‌ها به ارائه‌ها در C++

مقدمه

یک واترمارک در یک ارائه، یک نشان متنی یا تصویری است که بر روی یک اسلاید یا در تمام اسلایدهای ارائه استفاده می‌شود. معمولاً از واترمارک برای نشان دادن اینکه ارائه یک پیش‌نویس است (مثلاً واترمارک «Draft»)، حاوی اطلاعات محرمانه است (مثلاً واترمارک «Confidential»)، برای مشخص کردن شرکت مربوطه (مثلاً واترمارک «Company Name»)، برای شناسایی نویسنده ارائه و غیره استفاده می‌شود. واترمارک با نشان دادن اینکه نسخه‌برداری از ارائه مجاز نیست، به جلوگیری از نقض حقوق کپی‌رایت کمک می‌کند. واترمارک‌ها در فرمت‌های ارائه PowerPoint و OpenOffice به‌کار می‌روند. در Aspose.Slides می‌توانید واترمارک را به فایل‌های PowerPoint PPT، PPTX و OpenOffice ODP اضافه کنید.

در Aspose.Slides، روش‌های مختلفی برای ایجاد واترمارک در اسناد PowerPoint یا OpenOffice و ویرایش طراحی و رفتار آن‌ها وجود دارد. نکتهٔ مشترک این است که برای افزودن واترمارک متنی باید از رابط ITextFrame استفاده کنید و برای افزودن واترمارک تصویری، از کلاس PictureFrame یا پر کردن یک شکل واترمارک با تصویر استفاده کنید. PictureFrame رابط IShape را پیاده‌سازی می‌کند و به شما امکان استفاده از تمام تنظیمات انعطاف‌پذیر شیء شکل را می‌دهد. از آنجایی که ITextFrame یک شکل نیست و تنظیمات آن محدود است، در یک شیء IShape بسته می‌شود.

دو روش برای اعمال واترمارک وجود دارد: به یک اسلاید واحد یا به تمام اسلایدهای ارائه. برای اعمال واترمارک به تمام اسلایدها از Slide Master استفاده می‌شود — واترمارک به Slide Master اضافه می‌شود، در آنجا به‌طور کامل طراحی می‌شود و به تمام اسلایدها اعمال می‌شود بدون این‌که امکان ویرایش واترمارک در اسلایدهای جداگانه را تحت تأثیر قرار دهد.

واترمارک معمولاً برای ویرایش توسط دیگر کاربران غیرقابل دسترسی در نظر گرفته می‌شود. برای جلوگیری از ویرایش واترمارک (یا بهتر بگوییم شکل والد واترمارک)، Aspose.Slides قابلیت قفل‌کردن شکل را فراهم می‌کند. یک شکل خاص می‌تواند در یک اسلاید عادی یا در Slide Master قفل شود. وقتی شکل واترمارک در Slide Master قفل شود، در تمام اسلایدهای ارائه نیز قفل می‌ماند.

می‌توانید برای واترمارک یک نام تنظیم کنید تا در آینده، در صورت نیاز به حذف آن، بتوانید آن را بر اساس نام در اشکال اسلاید پیدا کنید.

می‌توانید واترمارک را به هر شکلی طراحی کنید؛ اما معمولاً ویژگی‌های مشترکی در واترمارک‌ها وجود دارد، مانند تراز وسط، چرخش، قرارگیری در جلو و غیره. در مثال‌های زیر نحوهٔ استفاده از این ویژگی‌ها را بررسی می‌کنیم.

واترمارک متنی

افزودن واترمارک متنی به یک اسلاید

برای افزودن واترمارک متنی در PPT، PPTX یا ODP، ابتدا می‌توانید یک شکل به اسلاید اضافه کنید، سپس یک فریم متن به این شکل اضافه نمایید. فریم متن توسط رابط ITextFrame نشان داده می‌شود. این نوع از IShape ارث‌بندی نمی‌شود، در حالی که مجموعهٔ وسیعی از ویژگی‌های موقعیت‌یابی برای تنظیم انعطاف‌پذیر واترمارک دارد. بنابراین، شیء ITextFrame در یک شیء IAutoShape بسته می‌شود. برای افزودن متن واترمارک به شکل، از متد AddTextFrame همان‌طور که در زیر نشان داده شده استفاده کنید.

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

افزودن واترمارک متنی به یک ارائه

اگر می‌خواهید واترمارک متنی را به کل ارائه (یعنی تمام اسلایدها به‌صورت همزمان) اضافه کنید، آن را به MasterSlide اضافه کنید. بقیه منطق مشابه افزودن واترمارک به یک اسلاید است — یک شیء IAutoShape ایجاد کنید و سپس با استفاده از متد 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();

تنظیم شفافیت شکل واترمارک

به طور پیش‌فرض، شکل مستطیل با رنگ پر و خط تنظیم شده است. خطوط کد زیر شکل را شفاف می‌کند.

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

تنظیم فونت برای واترمارک متنی

می‌توانید فونت متن واترمارک را همان‌طور که در زیر نشان داده شده تغییر دهید.

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

تنظیم رنگ متن واترمارک

برای تنظیم رنگ متن واترمارک، از این کد استفاده کنید:

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

وسط‌چین کردن واترمارک متنی

می‌توانید واترمارک را در وسط اسلاید قرار دهید و برای این کار می‌توانید مراحل زیر را انجام دهید:

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

تصویر زیر نتیجهٔ نهایی را نشان می‌دهد.

واترمارک متنی

واترمارک تصویری

افزودن واترمارک تصویری به یک ارائه

برای افزودن واترمارک تصویری به اسلایدهای یک ارائه، می‌توانید کارهای زیر را انجام دهید:

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

قفل کردن واترمارک برای ویرایش

اگر نیاز است از ویرایش واترمارک جلوگیری کنید، از متد IAutoShape::get_AutoShapeLock بر روی شکل استفاده کنید. با این ویژگی می‌توانید از انتخاب، تغییر اندازه، جابجایی، گروه‌بندی با عناصر دیگر، قفل متن از ویرایش و موارد دیگر برای شکل محافظت کنید:

// قفل کردن شکل واترمارک از تغییر
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);

آوردن واترمارک به جلو

در Aspose.Slides، ترتیب Z اشکال می‌تواند از طریق متد IShapeCollection::Reorder تنظیم شود. برای این کار باید این متد را از لیست اسلایدهای ارائه صدا بزنید و مرجع شکل و شمارهٔ ترتیب آن را به متد پاس بدهید. به این ترتیب می‌توانید شکلی را به جلو بیاورید یا به عقب بفرستید. این قابلیت به‌ویژه وقتی مفید است که بخواهید واترمارک را در جلوی ارائه قرار دهید:

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

تنظیم چرخش واترمارک

در زیر یک مثال کد برای تنظیم چرخش واترمارک به‌گونه‌ای که به‌صورت قطری بر روی اسلاید قرار گیرد، آورده شده است:

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

watermarkShape->set_Rotation((float)diagonalAngle);

تخصیص نام برای واترمارک

Aspose.Slides به شما امکان می‌دهد نام یک شکل را تنظیم کنید. با استفاده از نام شکل می‌توانید در آینده به آن دسترسی پیدا کنید تا آن را ویرایش یا حذف کنید. برای تنظیم نام شکل واترمارک، از متد IAutoShape::set_Name استفاده کنید:

watermarkShape->set_Name(u"watermark");

حذف واترمارک

برای حذف شکل واترمارک، از متد IAutoShape::get_Name برای یافتن آن در اشکال اسلاید استفاده کنید. سپس شکل واترمارک را به متد 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);
    }
}

یک مثال زنده

ممکن است بخواهید ابزارهای آنلاین Aspose.Slides free را برای افزودن واترمارک Add Watermark و Remove Watermark بررسی کنید.

ابزارهای آنلاین برای افزودن و حذف واترمارک‌ها

پرسش‌های متداول

واترمارک چیست و چرا باید از آن استفاده کنم؟

واترمارک یک لایهٔ متنی یا تصویری است که بر روی اسلایدها اعمال می‌شود و به حفاظت از مالکیت معنوی، ارتقای شناخت برند یا جلوگیری از استفاده غیرمجاز از ارائه‌ها کمک می‌کند.

آیا می‌توانم واترمارک را به تمام اسلایدهای یک ارائه اضافه کنم؟

بله، Aspose.Slides به شما امکان می‌دهد برنامه‌نویسی کنید و واترمارک را به هر اسلاید از یک ارائه اضافه کنید. می‌توانید در تمام اسلایدها تکرار کنید و تنظیمات واترمارک را به‌صورت جداگانه اعمال کنید.

چگونه شفافیت واترمارک را تنظیم کنم؟

می‌توانید شفافیت واترمارک را با تغییر تنظیمات پر (FillFormat) شکل تنظیم کنید. این کار باعث می‌شود واترمارک به‌صورت ظریف باشد و تمرکز را از محتوای اسلاید دور نکند.

چه فرمت‌های تصویری برای واترمارک پشتیبانی می‌شوند؟

Aspose.Slides از فرمت‌های تصویری مختلفی مانند PNG، JPEG، GIF، BMP، SVG و غیره پشتیبانی می‌کند.

آیا می‌توانم فونت و سبک واترمارک متنی را سفارشی کنم؟

بله، می‌توانید هر فونت، اندازه و سبکی را انتخاب کنید تا با طراحی ارائه شما سازگار باشد و ثبات برند را حفظ کنید.

چگونه مکان یا جهت‌گیری واترمارک را تغییر دهم؟

می‌توانید موقعیت و جهت‌گیری واترمارک را برنامه‌نویسی با تغییر مختصات، اندازه و ویژگی‌های چرخش شکل تنظیم کنید.