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

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

خصوصیات براش برای رسم
یک براش برای رسم خطوطی که نقاط یک ردپای جوهر را به هم متصل میکند، استفاده میشود. براش رنگ و اندازهٔ مخصوص خود را دارد که توسط متدهای InkBrush.getColor و InkBrush.getSize نمایان میشود.
تنظیم رنگ براش جوهر
این کد PHP نشان میدهد چگونه رنگ یک براش جوهر را تنظیم کنید:
$presentation = new Presentation("pres.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$ink = $slide->getShapes()->get_Item(0);
$brush = $ink->getTraces()[0]->getBrush();
$brush->setColor(java("java.awt.Color")->RED);
} finally {
$presentation->dispose();
}
تنظیم اندازه براش جوهر
این کد PHP نشان میدهد چگونه اندازهٔ یک براش جوهر را تنظیم کنید:
$presentation = new Presentation("pres.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$ink = $slide->getShapes()->get_Item(0);
$brush = $ink->getTraces()[0]->getBrush();
$brushSize = new Java("java.awt.Dimension", 5, 10);
$brush->setSize($brushSize);
} finally {
$presentation->dispose();
}
عموماً عرض و ارتفاع یک براش برابر نیستند، بنابراین PowerPoint اندازهٔ براش را نمایش نمیدهد (بخش دادهٔ مربوطه خاکستری است). وقتی عرض و ارتفاع براش برابر شوند، PowerPoint اندازهٔ آن را به این شکل نشان میدهد:

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

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

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

کنترل ظاهر جوهر هنگام خروجی و رندرینگ
Aspose.Slides کلاس InkOptions را برای کنترل نحوهٔ نمایش اشیای جوهر در خروجی یا رندر شده فراهم میکند. میتوانید از خصوصیات آن برای مخفیکردن کامل جوهر یا تغییر نحوهٔ تفسیر عملیات ماسک براش جوهر استفاده کنید.
گزینههای جوهر از طریق گزینههای خروجی یا رندرینگ برای چندین نوع خروجی در دسترس هستند:
| خروجی | ویژگی گزینههای جوهر |
|---|---|
| PdfOptions.getInkOptions | |
| HTML | HtmlOptions.getInkOptions |
| SVG | SVGOptions.getInkOptions |
| TIFF | TiffOptions.getInkOptions |
| تصویر اسلاید | RenderingOptions.getInkOptions |
متدهای زیر از کلاس InkOptions دو تنظیم مشابه را ارائه میدهند:
- InkOptions.getHideInk تعیین میکند آیا اشیای جوهر در خروجی گنجانده شوند یا نه. مقدار پیشفرض آن
falseاست. - InkOptions.getInterpretMaskOpAsOpacity تعیین میکند آیا یک عملیات ماسک هنگام رندرینگ یک براش جوهر به عنوان شفافیت تفسیر شود. مقدار پیشفرض آن
trueاست؛ برای استفاده از عملیات ROP به جای آن، InkOptions.setInterpretMaskOpAsOpacity را باfalseفراخوانی کنید.
پنهان کردن اشیای جوهر در خروجی PDF
بهطور پیشفرض، اشیای جوهر هنگام خروجی قابل مشاهده هستند. برای ایجاد یک خروجی پاک بدون حاشیهنویسیهای دستنویس یا سایر محتوای جوهر، InkOptions.setHideInk را با true فراخوانی کنید.
این مثال PHP ارائه را به PDF صادر میکند و تمام اشیای جوهر را مخفی میسازد:
$presentation = new Presentation("presentation.pptx");
try {
$pdfOptions = new PdfOptions();
$pdfOptions->getInkOptions()->setHideInk(true);
$presentation->save("presentation_without_ink.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
$presentation->dispose();
}
پنهان کردن اشیای جوهر هنگام رندر اسلاید به عنوان تصویر
برای مخفی کردن اشیای جوهر هنگام رندر اسلایدها به عنوان تصاویر بیتمپ، RenderingOptions.getInkOptions را پیکربندی کنید و گزینههای رندرینگ را به متد Slide.getImage پاس دهید.
این مثال PHP اولین اسلاید را به تصویر PNG بدون اشیای جوهر رندر میکند:
$presentation = new Presentation("presentation.pptx");
try {
$renderingOptions = new RenderingOptions();
$renderingOptions->getInkOptions()->setHideInk(true);
$slide = $presentation->getSlides()->get_Item(0);
$image = $slide->getImage($renderingOptions);
try {
$image->save("slide_without_ink.png", ImageFormat::Png);
} finally {
$image->dispose();
}
} finally {
$presentation->dispose();
}
کنترل رندر ماسک جوهر
تنظیم InkOptions.getInterpretMaskOpAsOpacity نحوهٔ تفسیر عملیات ماسک هنگام رندرینگ براشهای جوهر را کنترل میکند. مقدار پیشفرض true است که از شفافیت استفاده میکند. برای استفاده از عملیات ROP به جای آن، InkOptions.setInterpretMaskOpAsOpacity را با false فراخوانی کنید.
این مثال PHP یک اسلاید را به SVG صادر میکند و برای عملیات ماسک جوهر از رندرینگ مبتنی بر ROP استفاده میکند:
$presentation = new Presentation("presentation.pptx");
try {
$svgOptions = new SVGOptions();
$svgOptions->getInkOptions()->setInterpretMaskOpAsOpacity(false);
$outputStream = new Java("java.io.FileOutputStream", "slide.svg");
try {
$slide = $presentation->getSlides()->get_Item(0);
$slide->writeAsSvg($outputStream, $svgOptions);
} finally {
$outputStream->close();
}
} finally {
$presentation->dispose();
}
همین تنظیم میتواند از طریق TiffOptions.getInkOptions هنگام خروجی یک ارائه یا رندر یک اسلاید به TIFF اعمال شود.
انتخاب اینکه جوهر مخفی یا حفظ شود
زمانی که به نسخهٔ پاکی از یک ارائه حاشیهدار برای توزیع بدون علامتهای بررسی نیاز دارید، در زمان خروجی InkOptions.setHideInk را با true فراخوانی کنید.
وقتی حاشیهنویسیهای جوهر بخشی از محتوای مورد نظر هستند—مانند نظرات بررسی، یادداشتهای دستنویس، برجستهسازیها یا خطوطی که باید در نتیجهٔ خروجی قابل مشاهده باشند—InkOptions.getHideInk را در مقدار پیشفرض false بگذارید. این امکان را میدهد تا برنامهها خروجیهای جداگانهٔ بررسی و نهایی را از همان ارائه بدون تغییر در اشیای جوهر منبع تولید کنند.
سوالات متداول
آیا میتوانم رنگ یا اندازهٔ یک ضربهٔ جوهر موجود را تغییر دهم؟
بله. ردپا را از Ink.getTraces دریافت کنید، سپس InkTrace.getBrush آن را تغییر دهید. برای تغییر رنگ براش از InkBrush.setColor و برای تغییر اندازه از InkBrush.setSize استفاده کنید.
آیا پنهان کردن جوهر منبع ارائه را تغییر میدهد؟
خیر. فراخوانی InkOptions.setHideInk تنها بر نتیجهٔ رندر شده یا خروجی تأثیر میگذارد؛ اشیای جوهر در ارائهٔ منبع حذف یا اصلاح نمیشوند.
کدام فرمتهای خروجی از گزینههای جوهر پشتیبانی میکنند؟
میتوانید گزینههای جوهر را برای 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 نگاه کنید.