استخراج النص المتقدم من العروض التقديمية في Java

استخراج النص من الشرائح

توفر Aspose.Slides for Java فئة SlideUtil. تكشف هذه الفئة عن عدد من الأساليب الساكنة المحملة لاستخراج النص بالكامل من عرض تقديمي أو شريحة. لاستخراج النص من شريحة في عرض PPTX، استخدم الطريقة الساكنة المحملة getAllTextBoxes التي تكشفها فئة SlideUtil. تقبل هذه الطريقة كائن Slide كمعامل. عند التنفيذ، تقوم طريقة Slide بمسح النص بالكامل من الشريحة التي تم تمريرها كمعامل وتعيد مصفوفة من كائنات TextFrame. هذا يعني أن أي تنسيق نص مرتبط بالنص متاح. الجزء التالي من الشيفرة يستخرج كل النص في الشريحة الأولى من العرض التقديمي:

//إنشاء كائن من فئة Presentation التي تمثل ملف PPTX
Presentation pres = new Presentation("demo.pptx");
try {
    for (ISlide slide : pres.getSlides()) 
    {
        //احصل على مصفوفة من كائنات ITextFrame من جميع الشرائح في ملف PPTX
        ITextFrame[] textFramesPPTX = SlideUtil.getAllTextBoxes(slide);

        //التكرار عبر مصفوفة TextFrames
        for (int i = 0; i < textFramesPPTX.length; i++) {
            //التكرار عبر الفقرات في كائن ITextFrame الحالي
            for (IParagraph para : textFramesPPTX[i].getParagraphs()) {
                //التكرار عبر المقاطع في كائن IParagraph الحالي
                for (IPortion port : para.getPortions()) {
                    //عرض النص في المقطع الحالي
                    System.out.println(port.getText());

                    //عرض ارتفاع خط النص
                    System.out.println(port.getPortionFormat().getFontHeight());

                    //عرض اسم خط النص
                    if (port.getPortionFormat().getLatinFont() != null)
                        System.out.println(port.getPortionFormat().getLatinFont().getFontName());
                }
            }
        }
    }
} finally {
    pres.dispose();
}

استخراج النص من العروض التقديمية

للمسح النص من كامل العرض التقديمي، استخدم الطريقة الساكنة getAllTextFrames التي تكشفها فئة SlideUtil. تأخذ هذه الطريقة معاملين:

  1. أولاً، كائن Presentation الذي يمثل العرض التقديمي الذي يُستخرج منه النص.
  2. ثانياً، قيمة من نوع boolean تحدد ما إذا كان يجب تضمين الشريحة الأصلية (master slide) عند مسح النص من العرض التقديمي. تُعيد الطريقة مصفوفة من كائنات TextFrame، مع كامل معلومات تنسيق النص. الشيفرة أدناه تقوم بمسح النص ومعلومات التنسيق من عرض تقديمي، بما في ذلك الشرائح الأصلية.
//إنشاء كائن من فئة Presentation التي تمثل ملف PPTX
Presentation pres = new Presentation("demo.pptx");
try {
    //احصل على مصفوفة من كائنات ITextFrame من جميع الشرائح في ملف PPTX
    ITextFrame[] textFramesPPTX = SlideUtil.getAllTextFrames(pres, true);

    //التكرار عبر مصفوفة TextFrames
    for (int i = 0; i < textFramesPPTX.length; i++) 
    {
        //التكرار عبر الفقرات في كائن ITextFrame الحالي
        for (IParagraph para : textFramesPPTX[i].getParagraphs())
        {
            //التكرار عبر المقاطع في كائن IParagraph الحالي
            for (IPortion port : para.getPortions())
            {
                //عرض النص في المقطع الحالي
                System.out.println(port.getText());

                //عرض ارتفاع الخط للنص
                System.out.println(port.getPortionFormat().getFontHeight());

                //عرض اسم الخط للنص
                if (port.getPortionFormat().getLatinFont() != null)
                    System.out.println(port.getPortionFormat().getLatinFont().getFontName());
            }
        }
    }
} finally {
    pres.dispose();
}

استخراج نص مصنف وسريع

تمت إضافة الطريقة الساكنة الجديدة getPresentationText إلى فئة Presentation. هناك ثلاث تحميلات (overloads) لهذه الطريقة:

public IPresentationText getPresentationText(String file, int mode);
public IPresentationText getPresentationText(InputStream stream, int mode);
public IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options);

The TextExtractionArrangingMode enum argument indicates the mode to organize the output of text result and can be set to the following values:

  • Unarranged - The raw text with no respect to position on the slide
  • Arranged - The text is positioned in the same order as on the slide

Unarranged mode can be used when speed is critical, it’s faster than Arranged mode.

IPresentationText represents the raw text extracted from the presentation. It contains a getSlidesText method which returns an array of ISlideText objects. Every object represent the text on the corresponding slide. ISlideText object have the following methods:

The new API can be used like this:

IPresentationText text1 = PresentationFactory.getInstance().getPresentationText("presentation.pptx", TextExtractionArrangingMode.Unarranged);
System.out.println(text1.getSlidesText()[0].getText());
System.out.println(text1.getSlidesText()[0].getLayoutText());
System.out.println(text1.getSlidesText()[0].getMasterText());
System.out.println(text1.getSlidesText()[0].getNotesText());

الأسئلة المتكررة

ما مدى سرعة معالجة Aspose.Slides للعروض الكبيرة أثناء استخراج النص؟

تم تحسين Aspose.Slides لأداء عالي وتقوم بمعالجة حتى العروض الكبيرة بكفاءة، مما يجعلها مناسبة للسيناريوهات في الوقت الحقيقي أو المعالجة الضخمة.

هل يمكن لـ Aspose.Slides استخراج النص من الجداول والرسوم البيانية داخل العروض التقديمية؟

نعم، تدعم Aspose.Slides بالكامل استخراج النص من الجداول والرسوم البيانية وغيرها من عناصر الشريحة المعقدة، مما يتيح لك الوصول إلى جميع المحتويات النصية وتحليلها بسهولة.

هل أحتاج إلى ترخيص خاص من Aspose.Slides لاستخراج النص من العروض التقديمية؟

يمكنك استخراج النص باستخدام نسخة التجربة المجانية من Aspose.Slides، رغم أنها ستفرض بعض القيود مثل معالجة عدد محدود من الشرائح فقط. للحصول على استخدام غير مقيد وللتعامل مع العروض الأكبر، يُنصح بشراء ترخيص كامل.