Skip to content

Office 문서를 Markdown으로 변환

Office Oxide의 모든 핸들에는 to_markdown() 메서드가 있어, 지원되는 여섯 형식 중 어디서든 GitHub Flavored Markdown — 제목, 표, 목록, 코드 같은 블록 — 을 생성합니다. 대부분의 LLM 및 RAG 파이프라인이 사용해야 할 진입점입니다.

원샷

Rust

use office_oxide::to_markdown;

let md = to_markdown("report.docx")?;
std::fs::write("report.md", md)?;

Python

import office_oxide

md = office_oxide.to_markdown("report.docx")
open("report.md", "w").write(md)

JavaScript

import { toMarkdown } from 'office-oxide';
import { writeFileSync } from 'node:fs';

writeFileSync('report.md', toMarkdown('report.docx'));

Go

md, err := officeoxide.ToMarkdown("report.docx")
os.WriteFile("report.md", []byte(md), 0o644)

C#

File.WriteAllText("report.md", OfficeOxide.ToMarkdown("report.docx"));

재사용 가능한 핸들

Python

from office_oxide import Document

with Document.open("deck.pptx") as doc:
    md = doc.to_markdown()

Rust

let doc = office_oxide::Document::open("deck.pptx")?;
let md = doc.to_markdown();

JavaScript

using doc = Document.open('deck.pptx');
const md = doc.toMarkdown();

실제로 나오는 것

소스 요소 Markdown
DOCX 제목 (<w:pStyle w:val="Heading1"/> …) # 제목 (스타일에 맞는 레벨)
DOCX 단락 단락 하나, 소프트 하이픈 제거
DOCX 목록 항목 - 항목 또는 1. 항목 (번호 보존)
DOCX 표 GFM 파이프 표
XLSX 시트 ## 시트 이름 + 범위마다 파이프 표
XLSX 병합 셀 첫 셀 내용, span 폐기
PPTX 슬라이드 ## 슬라이드 N + 본문, 노트는 인용 블록으로 추가
PPTX 표 슬라이드 안에 인라인으로 들어가는 GFM 파이프 표
하이퍼링크 [텍스트](url)
이미지 ![alt](filename) 자리표시자 — 아래 “이미지” 참고

이미지

to_markdown()은 이미지를 이름 자리표시자(![](image1.png))로 출력하지만 이미지 바이트는 추출하지 않습니다 — Markdown은 텍스트 형식이니까요. 이미지를 꺼내려면 IR이나 형식별 접근을 사용하세요:

from office_oxide import Document

with Document.open("report.docx") as doc:
    ir = doc.to_ir()
    for section in ir["sections"]:
        for el in section["elements"]:
            if el["kind"] == "Image":
                print(el["filename"], len(el["data"]))

전체 스키마는 IR 추출에서.

사용 사례

  • RAG 인제스트 — Markdown은 가장 LLM 친화적인 입력 형식입니다. 문서당 1패스, 결정적인 구조, HTML 잡음 없음.
  • 문서 인덱싱 — 제목이 자연스러운 청크 경계가 되고, 표는 쿼리 가능한 상태로 남습니다.
  • 마이그레이션 — 정적 사이트 생성기(Hugo, Astro, MkDocs)를 위한 DOCX → Markdown.
  • 콘텐츠 diff — Markdown diff은 .docx 바이너리 diff보다 훨씬 보기 쉽습니다.

성능

to_markdown()plain_text()와 같은 차수입니다 — 중간 문서에서 보통 1~2배 비용. 전체 수치는 성능에서.

더 보기

  • HTML 추출 — 스타일이 있는 출력이 필요할 때
  • IR 추출 — 풍부한 파이프라인용 구조화 JSON
  • PDF for RAG — PDF용 동반 라이브러리 pdf_oxide