مدیریت اشیاء جوهر ارائه در C++
مقدمه
PowerPoint یک ویژگی جوهر ارائه میدهد که به شما امکان رسم خطوط آزاد شکل را میدهد. میتوان از جوهر برای برجستهسازی اشیاء دیگر، نشان دادن ارتباطات و فرآیندها و جلب توجه به موارد خاص در یک اسلاید استفاده کرد.
فضای نام Aspose.Slides.Ink شامل کلاسها و رابطهای لازم برای کار با اشیاء جوهر است. برای مثال، رابط IInk نمایانگر یک شیء جوهر در یک اسلاید است.
تفاوت بین اشیاء معمولی و اشیاء جوهر
اشیاء در اسلاید PowerPoint معمولاً توسط اشیاء شکل (shape) نمایان میشوند. در سادهترین شکل، یک shape یک ظرف است که ناحیهٔ خود شیء (قاب آن) به همراه ویژگیهایی مانند اندازهٔ ظرف، شکل و پسزمینه را تعریف میکند. برای اطلاعات بیشتر، به Shape Layout Format مراجعه کنید.
با این حال، هنگامی که PowerPoint یک شیء جوهر را پردازش میکند، تمام ویژگیهای قاب شیء (ظرف) را به جز اندازهٔ آن نادیده میگیرد. اندازهٔ ناحیهٔ ظرف توسط متدهای استاندارد IShape::get_Width و IShape::get_Height تعیین میشود:

ردپاهای جوهر (Ink Traces)
یک ردپای جوهر یک عنصر پایهای است که مسیر قلم را هنگام نوشتن دیجیتال ضبط میکند. ردپا یک توالی از نقاط متصل را ذخیره میکند.
سادهترین شکل کدگذاری، مختصات X و Y هر نقطه نمونه را مشخص میکند. هنگامی که تمامی نقاط متصل رندر شوند، تصویر زیر تولید میشود:

ویژگیهای قلم مو برای رسم
قلم مو برای رسم خطوطی که نقاط یک ردپای جوهر را به هم متصل میکند، استفاده میشود. قلم مو دارای رنگ و اندازهٔ خاص خود است که توسط متدهای IInkBrush::get_Color و IInkBrush::get_Size ارائه میشود.
تنظیم رنگ قلم مو جوهر
این کد C++ نشان میدهد که چگونه رنگ یک قلم مو جوهر را تنظیم کنید:
#include <DOM/Ink/IInk.h>
#include <DOM/Ink/IInkBrush.h>
#include <DOM/Ink/IInkTrace.h>
#include <DOM/Presentation.h>
#include <drawing/color.h>
#include <system/smart_ptr.h>
using Aspose::Slides::Ink::IInk;
using Aspose::Slides::Presentation;
using System::ExplicitCast;
using System::MakeObject;
auto presentation = MakeObject<Presentation>(u"pres.pptx");
auto ink = ExplicitCast<IInk>(presentation->get_Slide(0)->get_Shape(0));
auto inkTrace = ink->get_Traces()[0];
auto brush = inkTrace->get_Brush();
brush->set_Color(System::Drawing::Color::get_Red());
presentation->Dispose();
تنظیم اندازه قلم مو جوهر
این کد C++ نشان میدهد که چگونه اندازهٔ یک قلم مو جوهر را تنظیم کنید:
#include <DOM/Ink/IInk.h>
#include <DOM/Ink/IInkBrush.h>
#include <DOM/Ink/IInkTrace.h>
#include <DOM/Presentation.h>
#include <drawing/size_f.h>
#include <system/smart_ptr.h>
using Aspose::Slides::Ink::IInk;
using Aspose::Slides::Presentation;
using System::ExplicitCast;
using System::MakeObject;
auto presentation = MakeObject<Presentation>(u"pres.pptx");
auto ink = ExplicitCast<IInk>(presentation->get_Slide(0)->get_Shape(0));
auto inkTrace = ink->get_Traces()[0];
auto brush = inkTrace->get_Brush();
brush->set_Size(System::Drawing::SizeF(5.0f, 10.0f));
presentation->Dispose();
بهطور کلی، عرض و ارتفاع قلم مو مطابقت ندارند، بنابراین PowerPoint اندازهٔ قلم مو را نمایش نمیدهد (بخش مربوطه خاکستری است). وقتی عرض و ارتفاع قلم مو برابر باشند، PowerPoint اندازهٔ آن را به این شکل نمایش میدهد:

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

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

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

کنترل ظاهر جوهر هنگام خروجی و رندر
Aspose.Slides رابط IInkOptions را برای کنترل نحوهٔ نمایش اشیاء جوهر در خروجی یا رندر ارائه میدهد. میتوانید با استفاده از متدهای آن جوهر را بهطور کامل مخفی کنید یا نحوهٔ تفسیر عملیات ماسک قلم مو جوهر را تغییر دهید.
گزینههای جوهر از طریق گزینههای خروجی یا رندر برای چندین نوع خروجی در دسترس هستند:
| خروجی | متد گزینههای جوهر |
|---|---|
| PdfOptions::get_InkOptions | |
| HTML | HtmlOptions::get_InkOptions |
| SVG | SVGOptions::get_InkOptions |
| TIFF | TiffOptions::get_InkOptions |
| تصویر اسلاید | RenderingOptions::get_InkOptions |
دو تنظیم مشترک از طریق این متدها موجود است:
- IInkOptions::set_HideInk تعیین میکند که آیا اشیاء جوهر در خروجی گنجانده شوند یا نه. مقدار پیشفرض
falseاست. - IInkOptions::set_InterpretMaskOpAsOpacity تعیین میکند که آیا یک عملیات ماسک بهعنوان شفافیت تفسیر شود یا نه. مقدار پیشفرض
trueاست؛ برای استفاده از عملیات ROP مقدار را بهfalseتغییر دهید.
مخفی کردن اشیاء جوهر در خروجی PDF
بهصورت پیشفرض، اشیاء جوهر در هنگام خروجی قابل مشاهدهاند. هنگام نیاز به خروجی تمیز بدون حاشیهنویسی یا سایر محتویات جوهر، true را به متد IInkOptions::set_HideInk پاس دهید.
مثال C++ زیر یک ارائه را به PDF صادر میکند در حالی که تمام اشیاء جوهر مخفی میشوند:
#include <DOM/Presentation.h>
#include <Export/IInkOptions.h>
#include <Export/PdfOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using Aspose::Slides::Presentation;
using Aspose::Slides::Export::PdfOptions;
using Aspose::Slides::Export::SaveFormat;
using System::MakeObject;
auto presentation = MakeObject<Presentation>(u"presentation.pptx");
auto pdfOptions = MakeObject<PdfOptions>();
pdfOptions->get_InkOptions()->set_HideInk(true);
presentation->Save(u"presentation_without_ink.pdf", SaveFormat::Pdf, pdfOptions);
presentation->Dispose();
مخفی کردن اشیاء جوهر هنگام رندر اسلاید به تصویر
برای مخفی کردن اشیاء جوهر هنگام رندر اسلایدها به تصاویر بیتمپ، گزینههای RenderingOptions::get_InkOptions را پیکربندی کنید و گزینههای رندر را به متد ISlide::GetImage پاس دهید.
مثال C++ زیر اسلاید اول را به تصویر PNG بدون اشیاء جوهر رندر میکند:
#include <DOM/ISlide.h>
#include <DOM/Presentation.h>
#include <Export/IInkOptions.h>
#include <Export/RenderingOptions.h>
#include <IImage.h>
#include <ImageFormat.h>
#include <system/smart_ptr.h>
using Aspose::Slides::ImageFormat;
using Aspose::Slides::Presentation;
using Aspose::Slides::Export::RenderingOptions;
using System::MakeObject;
auto presentation = MakeObject<Presentation>(u"presentation.pptx");
auto renderingOptions = MakeObject<RenderingOptions>();
renderingOptions->get_InkOptions()->set_HideInk(true);
auto image = presentation->get_Slide(0)->GetImage(renderingOptions);
image->Save(u"slide_without_ink.png", ImageFormat::Png);
image->Dispose();
presentation->Dispose();
کنترل رندر ماسک جوهر
متد IInkOptions::set_InterpretMaskOpAsOpacity نحوهٔ تفسیر عملیات ماسک را هنگام رندر قلم موهای جوهر کنترل میکند. مقدار پیشفرض true است که از شفافیت استفاده میکند. برای استفاده از عملیات ROP، مقدار را به false تغییر دهید.
مثال C++ زیر یک اسلاید را به SVG صادر میکند و برای عملیات ماسک جوهر از رندر مبتنی بر ROP استفاده میکند:
#include <DOM/ISlide.h>
#include <DOM/Presentation.h>
#include <Export/IInkOptions.h>
#include <Export/SVGOptions.h>
#include <system/io/file.h>
#include <system/smart_ptr.h>
using Aspose::Slides::Presentation;
using Aspose::Slides::Export::SVGOptions;
using System::MakeObject;
using System::IO::File;
auto presentation = MakeObject<Presentation>(u"presentation.pptx");
auto svgOptions = MakeObject<SVGOptions>();
svgOptions->get_InkOptions()->set_InterpretMaskOpAsOpacity(false);
auto stream = File::Create(u"slide.svg");
presentation->get_Slide(0)->WriteAsSvg(stream, svgOptions);
stream->Dispose();
presentation->Dispose();
همین تنظیم میتواند از طریق TiffOptions::get_InkOptions هنگام خروجی ارائه یا رندر اسلاید به TIFF اعمال شود.
انتخاب مخفی یا نگهداشتن جوهر
از IInkOptions::set_HideInk همراه با true استفاده کنید وقتی فایل خروجی باید نسخهٔ تمیز یک ارائه حاوی حاشیهنویسی باشد، برای مثال نسخهٔ نهایی برای توزیع بدون علامتهای بررسی.
وقتی جوهر باید قابل مشاهده بماند (تنظیم پیشفرض false)، از آن زمانی استفاده کنید که حاشیهنویسی جوهر بخشی از محتوا باشد، مانند نظرات بررسی، یادداشتهای دستنویس، برجستهسازی یا رسمهایی که باید در نتیجهٔ خروجی قابل مشاهده باشند. این امکان را میدهد تا برنامهها بدون تغییر در اشیاء جوهر منبع، خروجیهای بررسی و نهایی جداگانهای از یک ارائه تولید کنند.
سؤالهای متداول
آیا میتوانم رنگ یا اندازهٔ یک خط جوهر موجود را تغییر دهم؟
بله. ردپا را از IInk::get_Traces دریافت کنید، سپس IInkTrace::get_Brush را تغییر دهید. میتوانید متدهای IInkBrush::set_Color و IInkBrush::set_Size را روی قلم مو فراخوانی کنید.
آیا مخفی کردن جوهر منبع ارائه را تغییر میدهد؟
خیر. IInkOptions::set_HideInk فقط بر نتایج رندر یا خروجی تأثیر میگذارد؛ اشیاء جوهر در ارائه منبع حذف یا تغییر نمیشوند.
کدام فرمتهای خروجی از گزینههای جوهر پشتیبانی میکنند؟
میتوانید گزینههای جوهر را برای PDF، HTML، SVG، TIFF و تصاویر بیتمپ اسلاید از طریق گزینههای خروجی یا رندری که در بالا نشان داده شد، پیکربندی کنید.
مطالعهٔ بیشتر
- برای آشنایی با اشکال بهطور کلی، بخش PowerPoint Shapes را ببینید.
- برای اطلاعات بیشتر درباره مقادیر مؤثر، به Shape Effective Properties مراجعه کنید.
- برای جزئیات خروجی PDF، به Convert PPT and PPTX to PDF نگاه کنید.
- برای جزئیات خروجی HTML، به Convert PowerPoint Presentations to HTML مراجعه کنید.
- برای جزئیات خروجی SVG، به Render Presentation Slides as SVG Images مراجعه کنید.
- برای جزئیات خروجی TIFF، به Convert PowerPoint Presentations to TIFF نگاه کنید.
- برای جزئیات رندر اسلاید به تصویر، به Convert Presentation Slides to Images مراجعه کنید.