مدیریت اشیاء جوهر ارائه در اندروید

معرفی

PowerPoint ویژگی جوهر (ink) را فراهم می‌کند که به شما امکان رسم خطوط آزادانه را می‌دهد. جوهر می‌تواند برای برجسته‌سازی اشیاء دیگر، نشان دادن ارتباطات و فرآیندها، و جلب توجه به موارد خاص در یک اسلاید استفاده شود.

Aspose.Slides انواع مورد نیاز برای کار با اشیاء جوهر را فراهم می‌کند. به عنوان مثال، رابط IInk نمایانگر یک شیء جوهر در یک اسلاید است.

تفاوت‌های اشیاء معمولی و اشیاء جوهر

اشیاء در یک اسلاید PowerPoint معمولاً توسط اشیاء شکل (shape) نمایش داده می‌شوند. در ساده‌ترین شکل، یک shape یک محفظه است که ناحیه خود اشیاء (قاب آن) را به همراه ویژگی‌هایی مانند اندازهٔ محفظه، شکل و پس‌زمینه تعریف می‌کند. برای اطلاعات بیشتر، https://docs.aspose.com/slides/fa/androidjava/shape-manipulations/#access-layout-formats-for-shape را ببینید.

با این حال، زمانی که PowerPoint یک شیء جوهر را مدیریت می‌کند، تمام ویژگی‌های قاب شیء (محفظه) به جز اندازهٔ آن را نادیده می‌گیرد. اندازهٔ ناحیهٔ محفظه با استفاده از روش‌های استاندارد IShape.getWidth و IShape.getHeight تعیین می‌شود:

ink_powerpoint1

ردیاب‌های جوهر

یک ردیاب جوهر یک عنصر پایه‌ای است که مسیر حرکت قلم را هنگام نوشتن جوهر دیجیتال ثبت می‌کند. یک ردیاب توالی‌ای از نقاط متصل را ذخیره می‌کند.

ساده‌ترین نوع کدگذاری مختصات X و Y هر نقطهٔ نمونه را مشخص می‌کند. وقتی تمام نقاط متصل رندر شوند، تصویری مشابه این تولید می‌شود:

ink_powerpoint2

ویژگی‌های قلم برای رسم

یک قلم برای رسم خطوطی که نقاط یک ردیاب جوهر را به هم متصل می‌کند، استفاده می‌شود. قلم دارای رنگ و اندازهٔ خاص خود است که توسط روش‌های IInkBrush.getColor و IInkBrush.getSize نمایان می‌شود.

تنظیم رنگ قلم جوهر

این کد Java نشان می‌دهد چگونه رنگ یک قلم جوهر تنظیم شود:

import android.graphics.Color;
import com.aspose.slides.*;

Presentation presentation = new Presentation("pres.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IInk ink = (IInk) slide.getShapes().get_Item(0);
    IInkBrush brush = ink.getTraces()[0].getBrush();
    brush.setColor(Color.RED);
} finally {
    presentation.dispose();
}

تنظیم اندازهٔ قلم جوهر

این کد Java نشان می‌دهد چگونه اندازهٔ یک قلم جوهر تنظیم شود:

import com.aspose.slides.*;
import com.aspose.slides.android.SizeF;

Presentation presentation = new Presentation("pres.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IInk ink = (IInk) slide.getShapes().get_Item(0);
    IInkBrush brush = ink.getTraces()[0].getBrush();
    SizeF brushSize = new SizeF(5, 10);
    brush.setSize(brushSize);
} finally {
    presentation.dispose();
}

به‌طور کلی، عرض و ارتفاع یک قلم یکسان نیستند، بنابراین PowerPoint اندازهٔ قلم را نمایش نمی‌دهد (بخش دادهٔ مربوطه خاکستری می‌شود). وقتی عرض و ارتفاع قلم با هم مطابقت داشته باشد، PowerPoint اندازهٔ آن را به این شکل نمایش می‌دهد:

ink_powerpoint3

برای وضوح، ارتفاع شیء جوهر را افزایش می‌دهیم و ابعاد مهم را مرور می‌کنیم:

ink_powerpoint4

محفظه (قاب) اندازهٔ قلم‌ها را در نظر نمی‌گیرد—همیشه فرض می‌کند ضخامت خط صفر است (به تصویر قبلی رجوع کنید).

بنابراین برای تعیین ناحیهٔ قابل مشاهدهٔ کل شیء جوهر، باید اندازهٔ قلم‌های ردیاب‌های آن در نظر گرفته شود. در اینجا، شیء هدف (ردیاب متن دست‌نویس) به اندازهٔ محفظه (قاب) مقیاس‌بندی شده است. وقتی اندازهٔ محفظه تغییر می‌کند، اندازهٔ قلم ثابت می‌ماند و بالعکس.

ink_powerpoint5

PowerPoint رفتار مشابهی برای اشیاء متن دارد:

ink_powerpoint6

کنترل ظاهر جوهر در زمان صادرات و رندرینگ

Aspose.Slides رابط IInkOptions را برای کنترل نحوهٔ نمایش اشیاء جوهر در خروجی‌های صادراتی یا رندر شده فراهم می‌کند. می‌توانید از ویژگی‌های آن برای مخفی کردن کامل جوهر یا تغییر تفسیر عملیات ماسک قلم جوهر استفاده کنید.

گزینه‌های جوهر از طریق گزینه‌های صادرات یا رندرینگ برای چندین نوع خروجی در دسترس هستند:

خروجی ویژگی گزینه‌های جوهر
PDF PdfOptions.getInkOptions
HTML HtmlOptions.getInkOptions
SVG SVGOptions.getInkOptions
TIFF TiffOptions.getInkOptions
تصویر اسلاید RenderingOptions.getInkOptions

روش‌های زیر از رابط IInkOptions دو تنظیم یکسان را افشا می‌کنند:

  • IInkOptions.getHideInk تعیین می‌کند که آیا اشیاء جوهر در خروجی گنجانده شوند یا خیر. مقدار پیش‌فرض آن false است.
  • IInkOptions.getInterpretMaskOpAsOpacity تعیین می‌کند که آیا یک عملیات ماسک به عنوان شفافیت تفسیر شود هنگام رندر قلم جوهر. مقدار پیش‌فرض آن true است؛ برای استفاده از عملیات ROP، IInkOptions.setInterpretMaskOpAsOpacity را با مقدار false فراخوانی کنید.

مخفی کردن اشیاء جوهر در خروجی PDF

به‌صورت پیش‌فرض، اشیاء جوهر در طول صادرات قابل مشاهده باقی می‌مانند. برای ایجاد خروجی تمیز بدون حاشیه‌نویسی‌های دست‌نویس یا سایر محتویات جوهر، IInkOptions.setHideInk را با مقدار true صدا بزنید.

مثال Java زیر یک ارائه را به PDF صادر می‌کند در حالی که تمام اشیاء جوهر مخفی هستند:

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.getInkOptions().setHideInk(true);

    presentation.save("presentation_without_ink.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

مخفی کردن اشیاء جوهر هنگام رندر اسلاید به عنوان تصویر

برای مخفی کردن اشیاء جوهر هنگام رندر اسلایدها به عنوان تصاویر بیت‌مپ، RenderingOptions.getInkOptions را پیکربندی کنید و گزینه‌های رندرینگ را به ISlide.getImage پاس دهید.

مثال Java زیر اولین اسلاید را به عنوان تصویر PNG بدون اشیاء جوهر رندر می‌کند:

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    RenderingOptions renderingOptions = new RenderingOptions();
    renderingOptions.getInkOptions().setHideInk(true);

    ISlide slide = presentation.getSlides().get_Item(0);
    IImage image = slide.getImage(renderingOptions);
    try {
        image.save("slide_without_ink.png", ImageFormat.Png);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

کنترل رندر ماسک جوهر

تنظیم IInkOptions.getInterpretMaskOpAsOpacity کنترل می‌کند که عملیات ماسک هنگام رندر قلم‌های جوهر چگونه تفسیر شود. مقدار پیش‌فرض true است که از شفافیت استفاده می‌کند. برای استفاده از عملیات ROP، IInkOptions.setInterpretMaskOpAsOpacity را با false فراخوانی کنید.

مثال Java زیر یک اسلاید را به SVG صادر می‌کند و از رندر مبتنی بر ROP برای عملیات ماسک جوهر استفاده می‌کند:

import com.aspose.slides.*;
import java.io.FileOutputStream;

Presentation presentation = new Presentation("presentation.pptx");
try {
    SVGOptions svgOptions = new SVGOptions();
    svgOptions.getInkOptions().setInterpretMaskOpAsOpacity(false);

    ISlide slide = presentation.getSlides().get_Item(0);
    FileOutputStream stream = new FileOutputStream("slide.svg");
    try {
        slide.writeAsSvg(stream, svgOptions);
    } finally {
        stream.close();
    }
} finally {
    presentation.dispose();
}

همین تنظیم می‌تواند از طریق TiffOptions.getInkOptions هنگام صادرات یک ارائه یا رندر اسلاید به TIFF اعمال شود.

انتخاب مخفی یا حفظ جوهر

هنگامی که به نسخهٔ تمیزی از ارائه حاوی حاشیه‌نویسی برای توزیع بدون علامت‌های مرور نیاز دارید، در طول صادرات IInkOptions.setHideInk را با مقدار true صدا بزنید.

در صورتی که حاشیه‌نویسی‌های جوهر بخشی از محتوای مورد نظر هستند (مانند نظرات مرور، یادداشت‌های دست‌نویس، هایلایت‌ها یا تصویرهای باید به‌صورت قابل مشاهده باقی بمانند)، IInkOptions.getHideInk را با مقدار پیش‌فرض false رها کنید. این امکان را می‌دهد تا برنامه‌ها خروجی‌های مرور و نهایی را از همان ارائه بدون تغییر اشیاء جوهر منبع تولید کنند.

سوالات متداول

آیا می‌توانم رنگ یا اندازهٔ یک خط جوهر موجود را تغییر دهم؟

بله. ردیاب را از طریق IInk.getTraces دریافت کنید، سپس قلم آن را با IInkTrace.getBrush تغییر دهید. برای تغییر رنگ از IInkBrush.setColor و برای تغییر اندازه از IInkBrush.setSize استفاده کنید.

آیا مخفی کردن جوهر منبع ارائه را تغییر می‌دهد؟

خیر. فراخوانی IInkOptions.setHideInk فقط بر نتیجهٔ رندر یا صادرات تأثیر می‌گذارد؛ اشیاء جوهر در منبع ارائه حذف یا تغییر نمی‌یابند.

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

می‌توانید گزینه‌های جوهر را برای PDF، HTML، SVG، TIFF و تصاویر بیت‌مپ اسلاید از طریق گزینه‌های صادرات یا رندرینگ مربوطه که در بالا نشان داده شده‌اند، پیکربندی کنید.

مطالعات بیشتر