استخراج النص المتقدم من العروض التقديمية على Android
نظرة عامة
استخراج النص من العروض التقديمية هو مهمة شائعة ولكنها أساسية للمطورين الذين يتعاملون مع محتوى الشرائح. سواء كنت تعمل مع ملفات Microsoft PowerPoint بصيغة PPT أو PPTX، أو عروض OpenDocument (ODP)، فإن الوصول إلى البيانات النصية واسترجاعها يمكن أن يكون حاسمًا للتحليل، الأتمتة، الفهرسة، أو أغراض ترحيل المحتوى.
توفر هذه المقالة دليلًا شاملًا حول كيفية استخراج النص بفعالية من صيغ عرض تقديمية مختلفة، بما في ذلك PPT وPPTX وODP، باستخدام Aspose.Slides for Android via Java. ستتعلم كيفية التكرار عبر عناصر العرض لاستخراج محتوى النص الذي تحتاجه بدقة.
استخراج النص من شريحة
توفر Aspose.Slides for Android via Java الفئة SlideUtil. هذه الفئة تُظهر عدة طرق ثابتة مُحمَّلة لاستخراج كل النص من عرض تقديمي أو شريحة. لاستخراج النص من شريحة في عرض تقديمي، استخدم طريقة getAllTextBoxes . هذه الطريقة تقبل كائنًا من النوع IBaseSlide كمعامل. عند التنفيذ، تقوم الطريقة بمسح جميع محتويات الشريحة للبحث عن النص وتُعيد مصفوفة من الكائنات من النوع ITextFrame، مع الحفاظ على أي تنسيق للنص.
المقتطع البرمجي التالي يستخرج كل النص من الشريحة الأولى للعرض التقديمي:
int slideIndex = 0;
Presentation presentation = new Presentation("demo.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(slideIndex);
ITextFrame[] textFrames = SlideUtil.getAllTextBoxes(slide);
for (ITextFrame textFrame : textFrames) {
for (IParagraph paragraph : textFrame.getParagraphs()) {
for (IPortion portion : paragraph.getPortions()) {
String portionText = portion.getText();
System.out.println(portionText);
IPortionFormat portionFormat = portion.getPortionFormat();
float fontHeight = portionFormat.getFontHeight();
System.out.println(fontHeight);
IFontData latinFont = portionFormat.getLatinFont();
if (latinFont != null) {
String fontName = latinFont.getFontName();
System.out.println(fontName);
}
}
}
}
} finally {
presentation.dispose();
}
استخراج النص من عرض تقديمي
لمسح النص من كامل العرض التقديمي، استخدم الطريقة الساكنة getAllTextFrames التي تُظهرها الفئة SlideUtil. تقبل الطريقة معاملين:
- أولاً، كائن IPresentation يمثل عرض PowerPoint أو OpenDocument سيُستخرج منه النص.
- ثانياً، قيمة
booleanتُحدِّد ما إذا كان يجب تضمين الشرائح الرئيسة أثناء مسح النص من العرض.
تُعيد الطريقة مصفوفة من الكائنات من النوع ITextFrame، بما في ذلك معلومات تنسيق النص. يُظهر الكود أدناه مسح النص وتفاصيل التنسيق من عرض تقديمي، بما في ذلك الشرائح الرئيسة.
Presentation presentation = new Presentation("demo.pptx");
try {
boolean includeMasterSlides = true;
ITextFrame[] textFrames = SlideUtil.getAllTextFrames(presentation, includeMasterSlides);
for (ITextFrame textFrame : textFrames) {
for (IParagraph paragraph : textFrame.getParagraphs()) {
for (IPortion portion : paragraph.getPortions()) {
String portionText = portion.getText();
System.out.println(portionText);
IPortionFormat portionFormat = portion.getPortionFormat();
float fontHeight = portionFormat.getFontHeight();
System.out.println(fontHeight);
IFontData latinFont = portionFormat.getLatinFont();
if (latinFont != null) {
String fontName = latinFont.getFontName();
System.out.println(fontName);
}
}
}
}
} finally {
presentation.dispose();
}
استخراج نص مصنف وسريع
توفر الفئة PresentationFactory أيضًا طرقًا لاستخراج كل النص من العروض التقديمية:
IPresentationText getPresentationText(String file, int mode);
IPresentationText getPresentationText(InputStream stream, int mode);
IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options);
معامل تعداد TextExtractionArrangingMode يحدد وضعية تنظيم نتيجة استخراج النص ويمكن ضبطه على القيم التالية:
- `Un