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

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

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

//إنشاء مثيل لفئة العرض التقديمي التي تمثل ملف 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. ثانيًا، قيمة بوليانية تحدد ما إذا كان يجب تضمين الشريحة الرئيسية عند مسح النص من العرض التقديمي. تُعيد الطريقة مصفوفة من كائنات TextFrame كاملة مع معلومات تنسيق النص. الكود أدناه يمسح النص ومعلومات التنسيق من عرض تقديمي، بما في ذلك الشرائح الرئيسية.
//إنشاء مثيل لفئة العرض التقديمي التي تمثل ملف 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. هناك ثلاثة تحميلات زائدة لهذه الطريقة:

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

معامل التعداد TextExtractionArrangingMode يشير إلى الوضع لتنظيم مخرجات نتيجة النص ويمكن تعيينه إلى القيم التالية:

  • Unarranged - النص الخام بدون مراعاة الوضع على الشريحة
  • Arranged - يتم تحديد النص بنفس ترتيب ظهوره في الشريحة

يمكن استخدام وضع Unarranged عندما تكون السرعة ذات أهمية كبيرة، فهو أسرع من وضع Arranged.

يمثل IPresentationText النص الخام المستخرج من العرض التقديمي. يحتوي على طريقة getSlidesText التي تُعيد مصفوفة من كائنات ISlideText. يمثل كل كائن النص الموجود على الشريحة المقابلة. كائن ISlideText يتمتع بالطرق التالية:

هناك أيضًا فئة SlideText التي تنفذ واجهة ISlideText.

يمكن استخدام واجهة برمجة التطبيقات الجديدة كالتالي:

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());