استخراج النص المتقدم من العروض التقديمية في PHP
استخراج النص من الشرائح
توفر Aspose.Slides for PHP عبر Java فئة SlideUtil. تُظهر هذه الفئة عددًا من الأساليب الثابتة المتعددة التحميل لاستخراج النص الكامل من عرض تقديمي أو شريحة. لاستخراج النص من شريحة في عرض PPTX، استخدم الأسلوب الثابت المتعدد التحميل getAllTextBoxes الذي توفره فئة SlideUtil. يقبل هذا الأسلوب كائن Slide كمعامل.
عند التنفيذ، يقوم أسلوب Slide بمسح النص الكامل من الشريحة التي تم تمريرها كمعامل ويعيد مصفوفة من كائنات TextFrame. هذا يعني أن أي تنسيق نصي مرتبط بالنص متاح. الجزء التالي من الشيفرة يستخرج جميع النصوص على الشريحة الأولى من العرض التقديمي:
# إنشاء كائن Presentation يمثل ملف PPTX
$pres = new Presentation("demo.pptx");
$Array = new java_class("java.lang.reflect.Array");
try {
foreach($pres->getSlides() as $slide) {
# الحصول على مصفوفة من كائنات ITextFrame من جميع الشرائح في PPTX
$textFramesPPTX = SlideUtil->getAllTextBoxes($slide);
# المرور عبر مصفوفة TextFrames
for($i = 0; $i < java_values($Array->getLength($textFramesPPTX)) ; $i++) {
# المرور عبر الفقرات في ITextFrame الحالي
foreach($textFramesPPTX[$i]->getParagraphs() as $para) {
# المرور عبر الأجزاء في IParagraph الحالي
foreach($para->getPortions() as $port) {
# عرض النص في الجزء الحالي
echo($port->getText());
# عرض ارتفاع الخط للنص
echo($port->getPortionFormat()->getFontHeight());
# عرض اسم الخط للنص
if (!java_is_null($port->getPortionFormat()->getLatinFont())) {
echo($port->getPortionFormat()->getLatinFont()->getFontName());
}
}
}
}
}
} finally {
$pres->dispose();
}
استخراج النص من العروض التقديمية
لمسح النص من كامل العرض التقديمي، استخدم الأسلوب الثابت getAllTextFrames الذي توفره فئة SlideUtil. يأخذ هذا الأسلوب معاملين:
- أولًا، كائن Presentation يمثل العرض التقديمي الذي يتم استخراج النص منه.
- ثانيًا، قيمة منطقية تحدد ما إذا كان يجب تضمين الشريحة الرئيسية عند مسح النص من العرض التقديمي. يعيد الأسلوب مصفوفة من كائنات TextFrame، مع معلومات تنسيق النص. الشيفرة أدناه تمسح النص ومعلومات التنسيق من عرض تقديمي، بما في ذلك الشرائح الرئيسية.
# إنشاء كائن Presentation يمثل ملف PPTX
$pres = new Presentation("demo.pptx");
$Array = new java_class("java.lang.reflect.Array");
try {
# الحصول على مصفوفة من كائنات ITextFrame من جميع الشرائح في PPTX
$textFramesPPTX = SlideUtil->getAllTextFrames($pres, true);
# التكرار عبر مصفوفة TextFrames
for($i = 0; $i < java_values($Array->getLength($textFramesPPTX)) ; $i++) {
# التكرار عبر الفقرات في ITextFrame الحالي
foreach($textFramesPPTX[$i]->getParagraphs() as $para) {
# التكرار عبر الأجزاء في IParagraph الحالي
foreach($para->getPortions() as $port) {
# عرض النص في الجزء الحالي
echo($port->getText());
# عرض ارتفاع الخط للنص
echo($port->getPortionFormat()->getFontHeight());
# عرض اسم الخط للنص
if (!java_is_null($port->getPortionFormat()->getLatinFont())) {
echo($port->getPortionFormat()->getLatinFont()->getFontName());
}
}
}
}
} finally {
$pres->dispose();
}
استخراج النص المصنّف والسريع
تم إضافة الأسلوب الثابت الجديد getPresentationText إلى فئة Presentation. هناك ثلاث تحميلات متعددة لهذا الأسلوب:
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.
PresentationText represents the raw text extracted from the presentation. It contains a getSlidesText method which returns an array of SlideText objects. Every object represent the text on the corresponding slide. SlideText object have the following methods:
SlideText.getText- The text on the slide’s shapesSlideText.getMasterText- The text on the master page’s shapes for this slideSlideText.getLayoutText- The text on the layout page’s shapes for this slideSlideText.getNotesText- The text on the notes page’s shapes for this slide
The new API can be used like this:
$text1 = PresentationFactory->getInstance()->getPresentationText("presentation.pptx", TextExtractionArrangingMode->Unarranged);
echo($text1->getSlidesText()[0]->getText());
echo($text1->getSlidesText()[0]->getLayoutText());
echo($text1->getSlidesText()[0]->getMasterText());
echo($text1->getSlidesText()[0]->getNotesText());
الأسئلة المتكررة
ما مدى سرعة معالجة Aspose.Slides للعروض التقديمية الكبيرة أثناء استخراج النص؟
تم تحسين Aspose.Slides للأداء العالي ويعالج بفاعلية حتى العروض التقديمية الكبيرة، مما يجعله مناسبًا للسيناريوهات الوقت الحقيقي أو المعالجة بالجملة.
هل يمكن لـ Aspose.Slides استخراج النص من الجداول والرسوم البيانية داخل العروض التقديمية؟
نعم، يدعم Aspose.Slides استخراج النص من الجداول والرسوم البيانية والعناصر المعقدة الأخرى في الشرائح، مما يتيح لك الوصول إلى جميع المحتويات النصية وتحليلها بسهولة.
هل أحتاج إلى ترخيص خاص لـ Aspose.Slides لاستخراج النص من العروض التقديمية؟
يمكنك استخراج النص باستخدام النسخة التجريبية المجانية من Aspose.Slides، على الرغم من وجود بعض القيود مثل معالجة عدد محدود من الشرائح فقط. لاستخدام غير محدود وللتعامل مع عروض تقديمية أكبر، يُنصح بشراء ترخيص كامل.