افزودن آب‌نشان به ارائه‌ها در Java

معرفی

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

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

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

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

می‌توانید نامی برای آب‌نشان تعیین کنید تا در آینده، اگر بخواهید آن را حذف کنید، بتوانید آن را بر پایه نام در لیست اشکال اسلاید پیدا کنید.

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

آب‌نشان متنی

افزودن آب‌نشان متنی به یک اسلاید

برای افزودن آب‌نشان متنی در PPT، PPTX یا ODP، ابتدا می‌توانید یک شکل به اسلاید اضافه کنید، سپس یک فریم متن به این شکل اضافه کنید. فریم متن توسط رابط ITextFrame نمایندگی می‌شود. این نوع از IShape به ارث نمی‌برد، که مجموعه گسترده‌ای از خصوصیات برای موقعیت‌یابی انعطاف‌پذیر آب‌نشان فراهم می‌کند. لذا شیٔ ITextFrame در یک شیٔ IAutoShape بسته می‌شود. برای افزودن متن آب‌نشان به شکل، از متد addTextFrame همان‌طور که در زیر نشان داده شده استفاده کنید.

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

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

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

تنظیم شفافیت شکل آب‌نشان

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

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

تنظیم فونت برای آب‌نشان متنی

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

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

تنظیم رنگ متن آب‌نشان

برای تنظیم رنگ متن آب‌نشان از کد زیر استفاده کنید:

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

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

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

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

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

آب‌نشان متنی

آب‌نشان تصویری

افزودن آب‌نشان تصویری به یک ارائه

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

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

قفل کردن آب‌نشان برای جلوگیری از ویرایش

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

// قفل کردن شکل آب‌نشان برای جلوگیری از تغییر
watermarkShape.getAutoShapeLock().setSelectLocked(true);
watermarkShape.getAutoShapeLock().setSizeLocked(true);
watermarkShape.getAutoShapeLock().setTextLocked(true);
watermarkShape.getAutoShapeLock().setPositionLocked(true);
watermarkShape.getAutoShapeLock().setGroupingLocked(true);

آوردن آب‌نشان به جلو

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

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

تنظیم چرخش آب‌نشان

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

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

watermarkShape.setRotation((float)diagonalAngle);

تنظیم نام برای آب‌نشان

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

watermarkShape.setName("watermark");

حذف آب‌نشان

برای حذف شکل آب‌نشان، از متد IAutoShape.getName برای یافتن آن در اشکال اسلاید استفاده کنید. سپس شکل آب‌نشان را به متد IShapeCollection.remove پاس دهید:

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

پرسش‌های رایج

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

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

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

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

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

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

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

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

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

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

چگونه موقعیت یا جهت‌گیری آب‌نشان را تغییر دهم؟

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