การสกัดข้อความขั้นสูงจากงานนำเสนอบน 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);
อากิวเมนต์ enum TextExtractionArrangingMode ระบุโหมดสำหรับจัดระเบียบผลลัพธ์การสกัดข้อความและสามารถตั้งค่าเป็นค่าต่อไปนี้:
Unarranged- ข้อความดิบโดยไม่คำนึงถึงตำแหน่งบนสไลด์Arranged- ข้อความถูกจัดเรียงตามลำดับเดียวกับบนสไลด์
โหมด Unarranged สามารถใช้เมื่อความเร็วเป็นสิ่งสำคัญ; มันเร็วกว่าโหมด Arranged
IPresentationText แสดงถึงข้อความดิบที่สกัดจากงานนำเสนอ เมธอด getSlidesText ของมันคืนค่าอาร์เรย์ของอ็อบเจกต์ชนิด ISlideText แต่ละอ็อบเจกต์แทนข้อความบนสไลด์ที่สอดคล้องของมัน อ็อบเจกต์ชนิด ISlideText มีเมธอดต่อไปนี้:
getText- ข้อความภายในรูปร่างของสไลด์getMasterText- ข้อความภายในรูปร่างของสไลด์มาสเตอร์ที่เชื่อมโยงกับสไลด์นี้getLayoutText- ข้อความภายในรูปร่างของสไลด์เลเอาต์ที่เชื่อมโยงกับสไลด์นี้getNotesText- ข้อความภายในรูปร่างของสไลด์บันทึกย่อที่เชื่อมโยงกับสไลด์นี้getCommentsText- ข้อความภายในคอมเมนต์ที่เชื่อมโยงกับสไลด์นี้
String presentationPath = "presentation.pptx";
int arrangingMode = TextExtractionArrangingMode.Unarranged;
IPresentationText presentationText = PresentationFactory.getInstance().getPresentationText(presentationPath, arrangingMode);
ISlideText firstSlideText = presentationText.getSlidesText()[0];
System.out.println(firstSlideText.getText());
System.out.println(firstSlideText.getLayoutText());
System.out.println(firstSlideText.getMasterText());
System.out.println(firstSlideText.getNotesText());
System.out.println(firstSlideText.getCommentsText());
คำถามที่พบบ่อย
Aspose.Slides ประมวลผลงานนำเสนอขนาดใหญ่ในการสกัดข้อความเร็วแค่ไหน?
Aspose.Slides ถูกปรับแต่งให้มีประสิทธิภาพสูงและสามารถประมวลผลแม้กระทั่ง large presentations ทำให้เหมาะสำหรับสถานการณ์การประมวลผลแบบเรียลไทม์หรือแบบก้อนใหญ่
Aspose.Slides สามารถสกัดข้อความจากตารางและแผนภูมิภายในงานนำเสนอได้หรือไม่?
ใช่. Aspose.Slides สามารถสกัดข้อความจากหลายองค์ประกอบของสไลด์ รวมถึงตารางและอ็อบเจกต์ที่เกี่ยวข้องกับแผนภูมิ ดังนั้นคุณจึงสามารถเข้าถึงและวิเคราะห์เนื้อหาข้อความในโครงสร้างงานนำเสนอทั่วไปได้
ฉันต้องใช้ใบอนุญาต Aspose.Slides เฉพาะเพื่อสกัดข้อความจากงานนำเสนอหรือไม่?
คุณสามารถสกัดข้อความโดยใช้เวอร์ชันทดลองฟรีของ Aspose.Slides แม้ว่าจะมี certain limitations เช่น การประมวลผลจำนวนสไลด์ที่จำกัด เพื่อการใช้งานไม่จำกัดและจัดการกับงานนำเสนอขนาดใหญ่ การซื้อใบอนุญาตเต็มเวอร์ชันจึงแนะนำ