Konversi PDF ke Markdown Otomatis Pakai MarkItDown Python
AW
Axel W

Dipublikasikan 1 Juni 2026

Konversi PDF ke Markdown Otomatis Pakai MarkItDown Python

MarkItDown adalah tools open source dari Microsoft yang bisa mengkonversi berbagai format dokumen seperti PDF, Word, Excel, dan PowerPoint menjadi Markdown yang bersih. Ini sangat berguna untuk RAG pipeline, content migration, atau sekadar mendapatkan structured text dari dokumen yang sulit diparse. Dibandingkan library sejenis, MarkItDown unggul dalam preservasi struktur tabel, heading hierarchy, dan formatting dasar.

Installasi dan Persiapan Environment

MarkItDown tersedia sebagai package Python dan bisa diinstall via pip. Disarankan menggunakan virtual environment untuk menghindari konflik dependency:

python -m venv venv_markitdown
source venv_markitdown/bin/activate  # Linux/Mac
# atau: venv_markitdown\Scriptsctivate  # Windows
pip install markitdown

Pastikan versi Python minimal 3.10 karena beberapa dependency membutuhkan fitur terbaru. Jika kamu juga butuh OCR untuk PDF berisi gambar, install tambahan tesseract di sistem operasi.

Konversi File Dasar

Untuk konversi file paling sederhana, cukup jalankan command berikut di terminal:

markitdown input.pdf > output.md

Command di atas akan membaca seluruh konten input.pdf dan menuliskannya ke output.md dalam format Markdown. MarkItDown otomatis mendeteksi tipe file berdasarkan extension dan magic bytes, jadi kamu bisa mengganti input.pdf dengan input.docx atau input.xlsx tanpa perubahan command.

Integrasi dalam Script Python

Untuk workflow yang lebih kompleks, kamu bisa menggunakan MarkItDown sebagai library Python:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("laporan_q4.pdf")
print(result.text_content)

Object result mengandung beberapa properti penting: text_content untuk markdown string, metadata untuk informasi dokumen seperti author dan title, serta images untuk daftar gambar yang terdeteksi dalam dokumen.

Batch Processing Banyak File

Seringkali kita butuh mengkonversi ratusan dokumen sekaligus. Buat script sederhana untuk batch processing:

import os
from pathlib import Path
from markitdown import MarkItDown

md = MarkItDown()
input_dir = Path("./documents")
output_dir = Path("./markdown_output")
output_dir.mkdir(exist_ok=True)

for file_path in input_dir.glob("*.{pdf,docx,xlsx,pptx}"):
    result = md.convert(str(file_path))
    output_file = output_dir / f"{file_path.stem}.md"
    output_file.write_text(result.text_content, encoding="utf-8")
    print(f"Converted: {file_path.name}")

Script di atas akan mengkonversi semua file yang cocok pattern di folder documents dan menyimpannya di markdown_output dengan nama file yang sama tapi extension .md.

Optimasi untuk RAG dan LLM Pipeline

Salah satu use case paling populer MarkItDown adalah preparasi data untuk Retrieval-Augmented Generation (RAG). Markdown output lebih mudah di-chunk dan diproses oleh LLM dibandingkan raw PDF text yang berantakan.

Tips optimasi:

  • Tambahkan header marker secara eksplisit sebelum chunking untuk menjaga konteks
  • Gunakan --strip-tags jika kamu tidak butuh formatting HTML dalam output
  • Untuk PDF scan, aktifkan OCR dengan memastikan Tesseract terinstall
  • Filter out halaman sampul dan footer yang berisi noise seperti nomor halaman

MarkItDown juga kompatibel dengan framework seperti LangChain dan LlamaIndex. Kamu bisa menggunakannya sebagai custom document loader dengan meng-extend base class loader masing-masing framework.

Tools ini sepenuhnya open source dan bisa diakses di repository GitHub microsoft/markitdown. Dokumentasi lengkap tersedia di README repository tersebut bersama daftar supported formats yang terus bertambah.