Android'de Sunumlardan Gelişmiş Metin Çıkarma
Genel Bakış
Sunumlardan metin çıkarmak, slayt içeriğiyle çalışan geliştiriciler için yaygın ancak önemli bir görevdir. Microsoft PowerPoint dosyaları PPT veya PPTX formatında olsun ya da OpenDocument sunumları (ODP) olsun, metinsel verilere erişmek ve bunları almak analiz, otomasyon, indeksleme veya içerik taşıma amaçları için kritik olabilir.
Bu makale, PPT, PPTX ve ODP dahil çeşitli sunum formatlarından metni verimli bir şekilde çıkarmak için Aspose.Slides for Android via Java kullanarak kapsamlı bir rehber sunar. Sunum öğeleri üzerinde sistematik olarak döngü oluşturmayı ve ihtiyacınız olan metin içeriğini doğru bir şekilde almayı öğreneceksiniz.
Slayttan Metin Çıkarma
Aspose.Slides for Android via Java, SlideUtil sınıfını sağlar. Bu sınıf, bir sunum veya slayttan tüm metni çıkarmak için birkaç aşırı yüklü statik yöntem sunar. Bir sunumdaki slayttan metin çıkarmak için, getAllTextBoxes yöntemini kullanın. Bu yöntem, parametre olarak IBaseSlide türünde bir nesne alır. Çalıştırıldığında, yöntem tüm slaytı metin için tarar ve metin biçimlendirmesini koruyan ITextFrame türünde nesneler dizisini döndürür.
Aşağıdaki kod parçacığı, sunumun ilk slaytındaki tüm metni çıkartır:
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();
}
Sunumdan Metin Çıkarma
Tam bir sunumdan metni taramak için, SlideUtil sınıfı tarafından sunulan getAllTextFrames statik yöntemini kullanın. Bu yöntem iki parametre alır:
- İlk olarak, metnin çıkarılacağı PowerPoint veya OpenDocument sunumunu temsil eden bir IPresentation nesnesi.
- İkinci olarak, sunumdan metin taranırken ana slaytların (master slides) dahil edilip edilmeyeceğini belirten bir
booleandeğer.
Yöntem, metin biçimlendirme bilgilerini içeren ITextFrame türünde nesneler dizisini döndürür. Aşağıdaki kod, ana slaytlar dahil olmak üzere bir sunumdan metin ve biçimlendirme detaylarını tarar.
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();
}
Kategorize ve Hızlı Metin Çıkarma
PresentationFactory sınıfı da sunumlardan tüm metni çıkarmak için yöntemler sağlar:
IPresentationText getPresentationText(String file, int mode);
IPresentationText getPresentationText(InputStream stream, int mode);
IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options);
TextExtractionArrangingMode enum argümanı, metin çıkarma sonucunun düzenlenme modunu gösterir ve aşağıdaki değerlerden birine ayarlanabilir:
Unarranged- Slayt üzerindeki konumuna bakılmadan ham metin.Arranged- Metin, slayttaki aynı sırada düzenlenir.
Hızın kritik olduğu durumlarda düzenlenmemiş (unarranged) mod kullanılabilir; bu mod, düzenli (arranged) moddan daha hızlıdır.
IPresentationText sunumdan çıkarılan ham metni temsil eder. getSlidesText yöntemi, ISlideText türünde nesneler dizisini döndürür. Her nesne ilgili slayttaki metni temsil eder. ISlideText türündeki nesnenin aşağıdaki yöntemleri vardır:
getText- Slayt şekilleri içindeki metin.getMasterText- Bu slaytla ilişkili ana slaytın şekilleri içindeki metin.getLayoutText- Bu slaytla ilişkili düzen slaytının şekilleri içindeki metin.getNotesText- Bu slaytla ilişkili not slaytının şekilleri içindeki metin.getCommentsText- Bu slaytla ilişkili yorumlardaki metin.
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());
SSS
Aspose.Slides büyük sunumları metin çıkarma sırasında ne kadar hızlı işler?
Aspose.Slides yüksek performans için optimize edilmiştir ve büyük sunumları bile işleyebilir, bu da gerçek zamanlı veya toplu işlem senaryoları için uygundur.
Aspose.Slides sunumlardaki tablolar ve grafiklerden metin çıkarabilir mi?
Evet. Aspose.Slides, tablolar ve grafikle ilgili nesneler dahil olmak üzere birçok slayt öğesinden metin çıkarabilir; böylece yaygın sunum yapılarındaki metin içeriğine erişebilir ve analiz edebilirsiniz.
Sunumlardan metin çıkarmak için özel bir Aspose.Slides lisansına ihtiyacım var mı?
Metni, Aspose.Slides’ın ücretsiz deneme sürümünü kullanarak çıkarabilirsiniz, ancak bu sürüm belirli kısıtlamalara sahiptir; örneğin yalnızca sınırlı sayıda slaytı işleyebilir. Sınırsız kullanım ve daha büyük sunumları yönetmek için tam bir lisans satın almanız önerilir.