Ekstraksi Teks Lanjutan dari Presentasi di Python
Gambaran Umum
Mengekstrak teks dari presentasi adalah tugas yang umum namun penting bagi pengembang yang bekerja dengan konten slide. Baik Anda menangani file Microsoft PowerPoint dalam format PPT atau PPTX, maupun presentasi OpenDocument (ODP), mengakses dan mengambil data teks dapat menjadi kritis untuk analisis, otomasi, pengindeksan, atau tujuan migrasi konten.
Artikel ini memberikan panduan komprehensif tentang cara mengekstrak teks secara efisien dari berbagai format presentasi, termasuk PPT, PPTX, dan ODP, menggunakan Aspose.Slides for Python via .NET. Anda akan belajar cara mengiterasi elemen presentasi secara sistematis untuk mengambil konten teks yang Anda butuhkan dengan tepat.
Ekstrak Teks dari Slide
Aspose.Slides for Python via .NET menyediakan namespace aspose.slides.util yang mencakup kelas SlideUtil. Kelas ini menyediakan beberapa metode statis yang di‑overload untuk mengekstrak semua teks dari presentasi atau slide. Untuk mengekstrak teks dari sebuah slide dalam presentasi, gunakan metode get_all_text_boxes. Metode ini menerima objek bertipe BaseSlide sebagai parameter. Saat dijalankan, metode ini memindai seluruh slide untuk teks dan mengembalikan array objek bertipe TextFrame, mempertahankan semua format teks.
Potongan kode berikut mengekstrak semua teks dari slide pertama presentasi:
import aspose.slides as slides
slide_index = 0
with slides.Presentation("demo.pptx") as presentation:
slide = presentation.slides[slide_index]
text_frames = slides.util.SlideUtil.get_all_text_boxes(slide)
for text_frame in text_frames:
for paragraph in text_frame.paragraphs:
for portion in paragraph.portions:
portion_text = portion.text
print(portion_text)
portion_format = portion.portion_format
font_height = portion_format.font_height
print(font_height)
latin_font = portion_format.latin_font
if latin_font is not None:
font_name = latin_font.font_name
print(font_name)
Ekstrak Teks dari Presentasi
Untuk memindai teks dari seluruh presentasi, gunakan metode statis get_all_text_frames yang disediakan oleh kelas SlideUtil. Metode ini menerima dua parameter:
- Pertama, objek Presentation yang mewakili presentasi PowerPoint atau OpenDocument dari mana teks akan diekstrak.
- Kedua, nilai
Booleanyang menunjukkan apakah slide master harus disertakan saat memindai teks dari presentasi.
Metode ini mengembalikan array objek bertipe TextFrame, termasuk informasi pemformatan teks. Kode di bawah ini memindai teks dan detail pemformatan dari sebuah presentasi, termasuk slide master.
import aspose.slides as slides
with slides.Presentation("demo.pptx") as presentation:
include_master_slides = True
text_frames = slides.util.SlideUtil.get_all_text_frames(presentation, include_master_slides)
for text_frame in text_frames:
for paragraph in text_frame.paragraphs:
for portion in paragraph.portions:
portion_text = portion.text
print(portion_text)
portion_format = portion.portion_format
font_height = portion_format.font_height
print(font_height)
latin_font = portion_format.latin_font
if latin_font is not None:
font_name = latin_font.font_name
print(font_name)
Ekstraksi Teks Terstruktur dan Cepat
Kelas PresentationFactory juga menyediakan metode untuk mengekstrak semua teks dari presentasi:
PresentationFactory.get_presentation_text(file, mode)
PresentationFactory.get_presentation_text(stream, mode)
PresentationFactory.get_presentation_text(stream, mode, options)
Argumen enum TextExtractionArrangingMode menunjukkan mode pengorganisasian hasil ekstraksi teks dan dapat disetel ke nilai berikut:
UNARRANGED- Teks mentah tanpa memperhatikan posisi pada slide.ARRANGED- Teks diatur dalam urutan yang sama seperti pada slide.
Mode UNARRANGED dapat digunakan ketika kecepatan menjadi faktor kritis; mode ini lebih cepat daripada mode ARRANGED.
PresentationText mewakili teks mentah yang diekstrak dari presentasi. Properti slides_text‑nya mengembalikan array objek teks slide. Setiap objek mewakili teks pada slide yang bersangkutan dan memiliki properti berikut:
text- Teks dalam bentuk‑bentuk pada slide.master_text- Teks dalam bentuk‑bentuk slide master yang terkait dengan slide ini.layout_text- Teks dalam bentuk‑bentuk slide tata letak yang terkait dengan slide ini.notes_text- Teks dalam bentuk‑bentuk slide catatan yang terkait dengan slide ini.comments_text- Teks dalam komentar yang terkait dengan slide ini.
import aspose.slides as slides
presentation_path = "presentation.ppt"
arranging_mode = slides.TextExtractionArrangingMode.UNARRANGED
presentation_text = slides.PresentationFactory.instance.get_presentation_text(presentation_path, arranging_mode)
first_slide_text = presentation_text.slides_text[0]
print(first_slide_text.text)
print(first_slide_text.layout_text)
print(first_slide_text.master_text)
print(first_slide_text.notes_text)
print(first_slide_text.comments_text)
FAQ
Seberapa cepat Aspose.Slides memproses presentasi besar saat mengekstrak teks?
Aspose.Slides dioptimalkan untuk kinerja tinggi dan dapat memproses bahkan presentasi besar, sehingga cocok untuk skenario pemrosesan real‑time atau bulk.
Apakah Aspose.Slides dapat mengekstrak teks dari tabel dan diagram dalam presentasi?
Ya. Aspose.Slides dapat mengekstrak teks dari banyak elemen slide, termasuk tabel dan objek terkait diagram, 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 ada pembatasan tertentu, seperti pemrosesan hanya sejumlah slide terbatas. Untuk penggunaan tanpa batas dan menangani presentasi yang lebih besar, disarankan membeli lisensi penuh.