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

مقدمه

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

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

تفاوت بین اشیاء عادی و اشیاء جوهر

اشیاء در یک اسلاید PowerPoint معمولاً توسط اشیاء شکل (shape) نمایان می‌شوند. در ساده‌ترین شکل، یک shape یک ظرف است که ناحیه خود (قاب) را به همراه ویژگی‌هایی مانند اندازه ظرف، شکل و پس‌زمینه تعریف می‌کند. برای اطلاعات بیشتر به قالب‌بندی چیدمان شکل مراجعه کنید.

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

ink_powerpoint1

ردهای جوهر

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

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

ink_powerpoint2

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

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

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

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

using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Ink;

using var presentation = new Presentation("pres.pptx");
var ink = (IInk)presentation.Slides[0].Shapes[0];
var brush = ink.Traces[0].Brush;
brush.Color = Color.Red;

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

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

using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Ink;

using var presentation = new Presentation("pres.pptx");
var ink = (IInk)presentation.Slides[0].Shapes[0];
var brush = ink.Traces[0].Brush;
brush.Size = new SizeF(5f, 10f);

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

ink_powerpoint3

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

ink_powerpoint4

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

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

ink_powerpoint5

PowerPoint رفتار مشابهی را برای اشیاء متنی اعمال می‌کند:

ink_powerpoint6

کنترل ظاهر جوهر هنگام استخراج و رندرینگ

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

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

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

دو تنظیم زیر از طریق این ویژگی‌ها در دسترس هستند:

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

پنهان‌سازی اشیاء جوهر در خروجی PDF

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

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

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("presentation.pptx");
var pdfOptions = new PdfOptions();
pdfOptions.InkOptions.HideInk = true;

presentation.Save("presentation_without_ink.pdf", SaveFormat.Pdf, pdfOptions);

پنهان‌سازی اشیاء جوهر هنگام رندر اسلاید به عنوان تصویر

برای پنهان‌کردن اشیاء جوهر هنگام رندر اسلایدها به صورت تصاویر بیت‌مپ، RenderingOptions.InkOptions را پیکربندی کنید و گزینه‌های رندر را به متد ISlide.GetImage پاس دهید.

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

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("presentation.pptx");
var renderingOptions = new RenderingOptions();
renderingOptions.InkOptions.HideInk = true;

using var image = presentation.Slides[0].GetImage(renderingOptions);
image.Save("slide_without_ink.png", ImageFormat.Png);

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

ویژگی IInkOptions.InterpretMaskOpAsOpacity نحوهٔ تفسیر عملیات ماسک را هنگام رندر قلم‌موهای جوهر کنترل می‌کند. مقدار پیش‌فرض true است که از شفافیت استفاده می‌کند. برای استفاده از عملیات ROP این ویژگی را به false تنظیم کنید.

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

using System.IO;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("presentation.pptx");
var svgOptions = new SVGOptions();
svgOptions.InkOptions.InterpretMaskOpAsOpacity = false;

using var stream = File.Create("slide.svg");
presentation.Slides[0].WriteAsSvg(stream, svgOptions);

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

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

هنگامی که فایل استخراج‌شده باید نسخهٔ پاکی از ارائه حاشیه‌دار باشد (مثلاً نسخهٔ نهایی برای توزیع بدون علامت‌گذاری‌های بازبینی)، ویژگی IInkOptions.HideInk را به true تنظیم کنید.

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

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

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

بله. رد را از IInk.Traces دریافت کنید، سپس قلم‌موهای آن را با IInkTrace.Brush تغییر دهید. می‌توانید رنگ (IInkBrush.Color) و اندازه (IInkBrush.Size) قلم‌مو را تنظیم کنید.

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

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

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

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

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