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

ردیابیهای جوهر
یک ردگیری جوهر (ink trace) عنصر پایهای است که مسیر حرکت قلم را هنگام نوشتن جوهر دیجیتال ثبت میکند. یک ردگیری مجموعهای از نقاط متصل را ذخیره میکند.
سادهترین شکل رمزگذاری، مختصات X و Y هر نقطه نمونه را مشخص میکند. هنگامی که تمام نقاط متصل رندر شوند، تصویر زیر بهدست میآید:

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

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

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

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 صدا بزنید.
مثال زیر بهزبان JavaScript یک ارائه را به PDF صادر میکند و تمام اشیاء جوهر را مخفی میسازد:
const aspose = {
slides: require("aspose.slides.via.java")
};
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.getInkOptions().setHideInk(true);
presentation.save("presentation_without_ink.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
مخفی کردن اشیاء جوهر هنگام رندر اسلاید بهصورت تصویر
برای مخفی کردن اشیاء جوهر هنگام رندر اسلایدها بهصورت تصاویر نقطهگرا، ویژگیهای RenderingOptions.getInkOptions را پیکربندی کنید و گزینههای رندر را به متد Slide.getImage منتقل کنید.
مثال زیر بهزبان JavaScript اولین اسلاید را به تصویر PNG رندر میکند بدون اشیاء جوهر:
const aspose = {
slides: require("aspose.slides.via.java")
};
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const renderingOptions = new aspose.slides.RenderingOptions();
renderingOptions.getInkOptions().setHideInk(true);
const slide = presentation.getSlides().get_Item(0);
const image = slide.getImage(renderingOptions);
try {
image.save("slide_without_ink.png", aspose.slides.ImageFormat.Png);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
کنترل رندر ماسک جوهر
تنظیم InkOptions.getInterpretMaskOpAsOpacity نحوهٔ تفسیر عملیات ماسک را هنگام رندر قلم جوهر کنترل میکند. مقدار پیشفرض true است که از شفافیت استفاده میکند. برای استفاده از عملیات ROP به جای آن، متد InkOptions.setInterpretMaskOpAsOpacity را با false فراخوانی کنید.
مثال زیر بهزبان JavaScript یک اسلاید را به SVG صادر میکند و برای عملیات ماسک جوهر از رندر مبتنی بر ROP استفاده مینماید:
const aspose = {
slides: require("aspose.slides.via.java")
};
const java = require("java");
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const svgOptions = new aspose.slides.SVGOptions();
svgOptions.getInkOptions().setInterpretMaskOpAsOpacity(false);
const outputStream = java.newInstanceSync("java.io.FileOutputStream", "slide.svg");
try {
const slide = presentation.getSlides().get_Item(0);
slide.writeAsSvg(outputStream, svgOptions);
} finally {
outputStream.close();
}
} finally {
presentation.dispose();
}
همین تنظیم میتواند از طریق TiffOptions.getInkOptions هنگام صادرات ارائه یا رندر اسلاید به TIFF اعمال شود.
انتخاب مخفی یا حفظ جوهر
زمانی که به نسخهٔ پاکسازیشدهای از ارائه حاوی حاشیهنویسیها برای توزیع بدون نشانهگذاریهای مرور نیاز دارید، در طول خروجی متد InkOptions.setHideInk را با true صدا بزنید.
وقتی حاشیهنویسیهای جوهر بخشی از محتوای هدف هستند (مثلاً نظرات مرور، یادداشتهای دستنویس، هایلایتها یا نقاشیهایی که باید در خروجی دیده شوند)، مقدار پیشفرض false برای InkOptions.getHideInk را حفظ کنید. این امکان به برنامهها اجازه میدهد خروجیهای مرور و نهایی را از یک ارائه بدون تغییر اشیاء جوهر منبع تولید کنند.
سؤالهای متداول
آیا میتوانم رنگ یا اندازهٔ یک خط جوهر موجود را تغییر دهم؟
بله. ردگیری را از طریق 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 مراجعه کنید.