Android에서 프레젠테이션의 고급 텍스트 추출
개요
프레젠테이션에서 텍스트를 추출하는 것은 개발자가 슬라이드 콘텐츠를 다룰 때 흔하면서도 필수적인 작업입니다. Microsoft PowerPoint 파일(PPT 또는 PPTX)이나 OpenDocument 프레젠테이션(ODP)을 다루든, 텍스트 데이터를 접근하고 가져오는 것은 분석, 자동화, 인덱싱, 또는 콘텐츠 마이그레이션 등에 중요할 수 있습니다.
이 문서에서는 Aspose.Slides for Android via Java를 사용하여 PPT, PPTX 및 ODP와 같은 다양한 프레젠테이션 형식에서 텍스트를 효율적으로 추출하는 방법에 대한 포괄적인 가이드를 제공합니다. 프레젠테이션 요소를 체계적으로 순회하면서 필요한 텍스트 콘텐츠를 정확히 가져오는 방법을 배울 수 있습니다.
슬라이드에서 텍스트 추출
Aspose.Slides for Android via Java는 SlideUtil 클래스를 제공합니다. 이 클래스는 프레젠테이션 또는 슬라이드에서 모든 텍스트를 추출하기 위한 여러 오버로드된 static 메서드를 제공합니다. 프레젠테이션의 슬라이드에서 텍스트를 추출하려면 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();
}
프레젠테이션에서 텍스트 추출
전체 프레젠테이션의 텍스트를 스캔하려면 SlideUtil 클래스에서 제공하는 getAllTextFrames static 메서드를 사용합니다. 이 메서드는 두 개의 매개변수를 받습니다:
- 첫 번째 매개변수는 텍스트를 추출할 PowerPoint 또는 OpenDocument 프레젠테이션을 나타내는 IPresentation 객체입니다.
- 두 번째 매개변수는 프레젠테이션의 텍스트를 스캔할 때 마스터 슬라이드를 포함할지 여부를 나타내는
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 열거형 인자는 텍스트 추출 결과를 정리하는 모드를 나타내며 다음 값으로 설정할 수 있습니다:
Unarranged- 슬라이드상의 위치와 무관한 원시 텍스트.Arranged- 슬라이드와 동일한 순서대로 정렬된 텍스트.
속도가 중요한 경우 정렬되지 않은 모드(Unarranged)를 사용할 수 있으며, 이는 정렬된 모드보다 더 빠릅니다.
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());
FAQ
Aspose.Slides는 텍스트 추출 중 대용량 프레젠테이션을 얼마나 빠르게 처리합니까?
Aspose.Slides는 고성능을 위해 최적화되어 있어 대형 프레젠테이션도 large presentations를 처리할 수 있어 실시간 또는 대량 처리 시나리오에 적합합니다.
Aspose.Slides는 프레젠테이션 내 테이블 및 차트에서 텍스트를 추출할 수 있습니까?
예. Aspose.Slides는 테이블 및 차트와 같은 슬라이드 요소를 포함한 많은 요소에서 텍스트를 추출할 수 있으므로 일반적인 프레젠테이션 구조에서 텍스트 콘텐츠에 접근하고 분석할 수 있습니다.
프레젠테이션에서 텍스트를 추출하려면 특별한 Aspose.Slides 라이선스가 필요합니까?
무료 체험 버전의 Aspose.Slides를 사용하여 텍스트를 추출할 수 있지만, certain limitations과 같이 슬라이드 수가 제한되는 등 몇 가지 제한이 있습니다. 무제한 사용 및 대용량 프레젠테이션 처리를 위해서는 전체 라이선스를 구매하는 것이 권장됩니다.