إدارة كائنات الحبر في العروض التقديمية باستخدام Java

المقدمة

يقدم PowerPoint ميزة الحبر التي تسمح لك برسم خطوط حرة الشكل. يمكن استخدام الحبر لتسليط الضوء على كائنات أخرى، وإظهار الروابط والعمليات، وجذب الانتباه إلى عناصر محددة على الشريحة.

توفر Aspose.Slides الأنواع اللازمة للعمل مع كائنات الحبر. على سبيل المثال، تمثل الواجهة IInk كائن الحبر على الشريحة.

الاختلافات بين الكائنات العادية وكائنات الحبر

عادةً ما تُمثَّل الكائنات على شريحة PowerPoint بواسطة كائنات الشكل. في أبسط صورها، الشكل هو حاوية تُحدد مساحة الكائن نفسه (إطارها) إلى جانب خصائص مثل حجم الحاوية وشكلها والخلفية. لمزيد من المعلومات، راجع Shape Layout Format.

ومع ذلك، عندما يتعامل PowerPoint مع كائن حبر، يتجاهل جميع خصائص إطار الكائن (الحاوية) باستثناء حجمه. يتم تحديد حجم مساحة الحاوية بواسطة الطريقتين القياسيتين IShape.getWidth وIShape.getHeight:

ink_powerpoint1

آثار الحبر

آثار الحبر هي عنصر أساسي يُستخدم لتسجيل مسار القلم أثناء كتابة الحبر الرقمي. تخزن الآثار تسلسلًا من النقاط المتصلة.

أبسط شكل للترميز يحدد إحداثيات X وY لكل نقطة عينة. عندما يتم عرض جميع النقاط المتصلة، ينتج عنها صورة كهذه:

ink_powerpoint2

خصائص الفُرْشاة للرسم

تُستخدم الفُرْشاة لرسم الخطوط التي تربط نقاط أثر الحبر. للفُرْشاة لونها وحجمها الخاصين، يُمثَّلان عبر طريقتي IInkBrush.getColor وIInkBrush.getSize .

تعيين لون فُرْشاة الحبر

يوضح هذا الكود Java كيفية تعيين لون فُرْشاة الحبر:

import com.aspose.slides.*;
import java.awt.Color;

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 java.awt.Dimension;

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();
    Dimension brushSize = new Dimension(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 تعرضان الإعدادين نفسهما:

إخفاء كائنات الحبر في مخرجات 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;
import java.io.IOException;

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

    FileOutputStream stream = new FileOutputStream("slide.svg");
    ISlide slide = presentation.getSlides().get_Item(0);
    slide.writeAsSvg(stream, svgOptions);
} 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 وصور الشرائح النقطية عبر خيارات التصدير أو العرض المقابلة المذكورة أعلاه.

قراءة إضافية