Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Extract Text dari PDF di Python dengan PyMuPDF (fitz)

1 min read .
Extract Text dari PDF di Python dengan PyMuPDF (fitz)

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

  1. Buka PDF: fitz.open(pdf_path) untuk load PDF.
  2. Buat Direktori Output: Kalau folder belum ada, os.makedirs(output_dir, exist_ok=True) bikin otomatis.
  3. Ekstrak Teks: Loop tiap halaman, ambil teks dengan page.get_text().
  4. Simpan Teks: Tulis ke file .txt dengan UTF-8 supaya karakter aman.
  5. 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.

Lihat Juga

Mengenal Python Lists: Panduan Lengkap dari Dasar hingga Multidimensional
Mengenal Python Lists: Panduan Lengkap dari Dasar hingga Multidimensional
Sebagai developer independen, saya sering banget ketemu kasus di mana data harus disimpan dan diolah dengan fleksibel. Awalnya saya rada bingung bedain kapan pakai list biasa, nested list, atau cara querying yang efisien. Tapi setelah sering eksperimen, Python lists itu ternyata powerful banget. Gini deh, mari kita kupas tuntas. 1. Membuat Lists Dasar Copy # Kosong empty_list = [] # Integer numbers = [1, 2, 3, 4, 5] # Campur-campur mixed_list = [1, "Hello", 3.14, True] # Nested list nested_list = [[1,2,3], [4,5,6], [7,8,9]] Menggunakan list() Copy tuple_to_list = list((1,2,3)) string_to_list = list("hello") 2. Mengakses & Mengubah Elemen Copy numbers = [10, 20, 30, 40, 50] # Akses first_element = numbers[0] last_element = numbers[-1] slice_of_list = numbers[1:4] # Modifikasi numbers[1] = 99 3. Menambah & Menghapus Elemen Copy numbers = [1,2,3] # Menambah numbers.append(4) numbers.extend([5,6]) numbers.insert(1, 10) # Menghapus numbers.remove(3) removed = numbers.pop(1) del numbers[1] 4. Operasi Dasar Lists Copy list1 + list2 # Concatenation [1,2,3] * 3 # Repetition 3 in [1,2,3] # Membership 5. Iterasi & List Comprehension Copy for n in numbers: print(n) squares = [x**2 for x in range(10)] evens = [x for x in range(10) if x%2==0] 6. Multidimensional Lists Copy matrix = [ [1,2,3], [4,5,6], [7,8,9] ] tensor = [ [[1,2],[3,4]], [[5,6],[7,8]], [[9,10],[11,12]] ] # Akses element = matrix[1][2] block = tensor[0] # Iterasi for row in matrix: for val in row: print(val, end=' ') print() 7. Querying Lists Copy numbers = [1,2,3,4,5,6,7,8,9,10] # Filtering evens = [x for x in numbers if x%2==0] evens2 = list(filter(lambda x: x%2==0, numbers)) # Searching greater_than_five = next((x for x in numbers if x>5), None) all_positive = all(x>0 for x in numbers) # Aggregating total_sum = sum(numbers) min_value = min(numbers) max_value = max(numbers) 8. Kesimpulan Gini deh, Python lists itu simpel tapi powerful. Dari list dasar, nested list, sampai querying, semuanya bikin manipulasi data lebih fleksibel. Kita rutin pakai list dan list comprehension, coding Python sehari-hari jadi lebih cepat dan enak.
chevron-up