Extract Text dari PDF di Python dengan PyMuPDF (fitz)
1
min read .
Updated on
Salah satu hal yang sering bikin repot waktu kerja sama PDF itu adalah ekstrak teks. Mau analisis, konversi, atau cuma mau bikin konten lebih gampang diakses, PDF itu tricky. Untungnya, Python punya library powerful: PyMuPDF alias fitz
, yang bikin ekstrak teks dari PDF jadi gampang.
Prasyarat
Install dulu library-nya kalau belum:
pip install pymupdf
Script Ekstraksi Teks
Berikut contoh script sederhana yang ambil teks tiap halaman PDF dan simpan ke file .txt
terpisah:
import fitz # PyMuPDF
import os
def extract_text_from_pdf(pdf_path, output_dir):
pdf_document = fitz.open(pdf_path)
os.makedirs(output_dir, exist_ok=True)
for page_num in range(len(pdf_document)):
page = pdf_document.load_page(page_num)
text = page.get_text()
file_path = os.path.join(output_dir, f"page_{page_num + 1}.txt")
with open(file_path, 'w', encoding='utf-8') as f:
f.write(text)
print(f"Teks halaman {page_num + 1} disimpan di {file_path}")
pdf_document.close()
# Ganti sesuai file PDF dan direktori output
extract_text_from_pdf("data/file.pdf", "output_texts")
Cara Kerja Script
- Buka PDF:
fitz.open(pdf_path)
untuk load PDF. - Buat Direktori Output: Kalau folder belum ada,
os.makedirs(output_dir, exist_ok=True)
bikin otomatis. - Ekstrak Teks: Loop tiap halaman, ambil teks dengan
page.get_text()
. - Simpan Teks: Tulis ke file
.txt
dengan UTF-8 supaya karakter aman. - Tutup PDF:
pdf_document.close()
supaya resource bersih.
Customisasi
- Bisa ubah format output.
- Bisa ekstrak halaman tertentu aja.
- Bisa ambil info tambahan seperti gambar atau anotasi.
Kesimpulan
Dengan beberapa baris kode, PyMuPDF bikin ekstrak teks PDF di Python gampang banget. Sejak kita pakai ini buat proyek, proses manipulasi PDF jauh lebih cepat dan nggak bikin pusing.