Ekstraksi Teks Tingkat Lanjut dari Presentasi di Python via Java
Gambaran Umum
Menekstrak teks dari presentasi merekupak tugas yang umum namun pertangan bagi pengembang yang berkerja dengan konten slide. Baik anda menanggali file Microsoft PowerPoint dalam format PPT atau PPTX, matu presentasi OpenDocument (ODP), mengakses dan mengambil data teks dapat menjandi krusial untuk analis, otomasi, pengindeksan, ata tujuan migrasi konten.
Artikel ini memberikan pandan komprehensif tentang cara mengekstrak teks secara effisi en dari berbagi format presentasi, termasuk PPT, PPTX, dan ODP, menggunak Aspose.Slides untuk Python via Java. Anda akan belaju mengaji cara menelusuri elemen‑presentasi secara sistematik untuk mengantuk konten teks yang anda butuhkan dalamnya akurat.
Mengekstrak Teks dari Slide
Aspose.Slides untuk Python via Java menyediakan kelas SlideUtil. Kelas ini menyediakan berapa methode statik yang overload untuk mengekstrak semuah teks dari sebuah presentasi ata slide. Untuk mengekstrak teks dari slide dalam presentasi, gunakan methode SlideUtil.getAllTextBoxes. Methode ini mengeri obyek bertipe BaseSlide sebagi parameter. Satai dijalankan, methode ini menscan seluruh slide untuk teks dan mengekembalikan array obyek bertipe TextFrame, memerikah pemformasi teks apa pun.
Potongan kode berikut mengekstrak semua teks dari slide pertama presentasi:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SlideUtil
slide_index = 0
presentation = Presentation("demo.pptx")
try:
slide = presentation.getSlides().get_Item(slide_index)
text_frames = SlideUtil.getAllTextBoxes(slide)
for text_frame in text_frames:
for paragraph in text_frame.getParagraphs():
for portion in paragraph.getPortions():
portion_text = portion.getText()
print(portion_text)
portion_format = portion.getPortionFormat()
font_height = portion_format.getFontHeight()
print(font_height)
latin_font = portion_format.getLatinFont()
if latin_font is not None:
font_name = latin_font.getFontName()
print(font_name)
finally:
presentation.dispose()
Mengekstrak Teks dari Presentasi
Untuk memindai teks dari semuah presentasi, gunakan methode statik SlideUtil.getAllTextFrames yang disediakan oleh klasa SlideUtil. Methode ini menterima dua parameter:
- Pertama, obyek Presentation yang mewakili presentasi PowerPoint ata OpenDocument dari mana teks akan diekstrak.
- Kedua, naila
boolyang menunjuk apa slide master perlu disimpul pas memindai teks dari presentasi.
Methode ini mengembalikan array obyek bertipe TextFrame, termasuk informasi pemformasi teks. Kode di bawah ini memindai teks dan detail pemformatan dari sebuah presentasi, termasuk slide master.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SlideUtil
presentation = Presentation("demo.pptx")
try:
include_master_slides = True
text_frames = SlideUtil.getAllTextFrames(presentation, include_master_slides)
for text_frame in text_frames:
for paragraph in text_frame.getParagraphs():
for portion in paragraph.getPortions():
portion_text = portion.getText()
print(portion_text)
portion_format = portion.getPortionFormat()
font_height = portion_format.getFontHeight()
print(font_height)
latin_font = portion_format.getLatinFont()
if latin_font is not None:
font_name = latin_font.getFontName()
print(font_name)
finally:
presentation.dispose()
Ekstraksi Teks Terkategorisasi dan Cepat
Klasa PresentationFactory juga menyediakan methode untuk mengekstrak semuah teks dari presentasi:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import LoadOptions, PresentationFactory, TextExtractionArrangingMode
from java.io import FileInputStream
mode = TextExtractionArrangingMode.Unarranged
load_options = LoadOptions()
# Mengambil teks dari sebuah file.
file_text = PresentationFactory.getInstance().getPresentationText("presentation.pptx", mode)
# Mengambil teks dari sebuah aliran.
stream = FileInputStream("presentation.pptx")
try:
stream_text = PresentationFactory.getInstance().getPresentationText(stream, mode)
finally:
stream.close()
# Mengambil teks dari sebuah aliran menggunakan opsi pemuatan.
stream_with_options = FileInputStream("presentation.pptx")
try:
stream_text_with_options = PresentationFactory.getInstance().getPresentationText(stream_with_options, mode, load_options)
finally:
stream_with_options.close()
Argumen enum TextExtractionArrangingMode menunjuk mode untuk mengatur hasil ekstrak teks dan dapat diatur ke nilai berikut:
- Unarranged - Teks mentah tanpa memperhatikan posisinya pada slide.
- Arranged - Teks diatur dalam urutan yang sama dengan pada slide.
Mode unarranged dapat digunakan ketika kecepatan menjadi kritis; mode ini lebih cepat daripada mode arranged.
PresentationText mewakili teks mentah yang diekstrak dari presentasi. Metode getSlidesText mengembalikan array objek bertipe SlideText. Setiap objek mewakili teks pada slide yang bersangkutan. Objek bertipe SlideText memiliki metode berikut:
getText- Teks dalam bentuk slide.getMasterText- Teks dalam bentuk slide master yang terkait dengan slide ini.getLayoutText- Teks dalam bentuk slide tata letak yang terkait dengan slide ini.getNotesText- Teks dalam bentuk slide catatan yang terkait dengan slide ini.getCommentsText- Teks dalam komentar yang terkait dengan slide ini.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import PresentationFactory, TextExtractionArrangingMode
presentation_path = "presentation.ppt"
arranging_mode = TextExtractionArrangingMode.Unarranged
presentation_text = PresentationFactory.getInstance().getPresentationText(presentation_path, arranging_mode)
first_slide_text = presentation_text.getSlidesText()[0]
print(first_slide_text.getText())
print(first_slide_text.getLayoutText())
print(first_slide_text.getMasterText())
print(first_slide_text.getNotesText())
print(first_slide_text.getCommentsText())
FAQ
Seberapa cepat Aspose.Slides memproses presentasi besar saat ekstraksi teks?
Aspose.Slides dioptimalkan untuk kinerja tinggi dan dapat memproses bahkan presentasi besar, sehingga cocok untuk skenario pemrosesan waktu nyata atau dalam jumlah besar.
Apakah Aspose.Slides dapat mengekstrak teks dari tabel dan grafik dalam presentasi?
Ya. Aspose.Slides dapat mengekstrak teks dari banyak elemen slide, termasuk tabel dan objek terkait grafik, sehingga Anda dapat mengakses dan menganalisis konten teks dalam struktur presentasi yang umum.
Apakah saya memerlukan lisensi khusus Aspose.Slides untuk mengekstrak teks dari presentasi?
Anda dapat mengekstrak teks menggunakan versi percobaan gratis Aspose.Slides, meskipun akan memiliki batasan tertentu, seperti memproses hanya sejumlah slide terbatas. Untuk penggunaan tanpa batas dan menangani presentasi yang lebih besar, disarankan membeli lisensi penuh.