v0.2.0
PDF → Markdown/JSON — LLM 에 먹이는 꼴로. https://www.npmjs.com/package/@ohah/pdf
npm i @ohah/pdf
새로 들어간 것
pdf.markdown({ pages? })·pdf.blocks({ pages? })— 제목 계층·문단(하이픈 잇기)·목록·코드·표·머리말/꼬리말 버림·두 단 순서. blocks 는 같은 덩이에 쪽 번호와 자리(pt)가 붙은 JSON. 워커 창구를 직접 쓰는 앱은markdownOf/blocksOf/structTree.- 태그 PDF(Word·InDesign·PDF/UA)는 구조 나무를 그대로 따른다 — H1~H6·P·L/LI·Table·Code·Figure 대체 글,
/Artifact버림,/RoleMap해석. 글자 조각(lines())에mcid가 붙는다. - 괘선 없는 표(같은 자리에서 끊기는 칸이 세 줄 넘게 이어지고 칸의 반이 숫자).
- 글자 뽑기를 pdf.js 수준으로: 조각 폭·틈으로 띄어쓰기, 합자 풀기, ToUnicode 여러 글자 목적지, 내장 인코딩, 장치 좌표.
고친 것
/DescendantFonts배열 객체(InDesign)·/W참조(Word)를 못 따라가 모든 글자가 1000 폭이 되던 것 — 줄 뒤쪽 글자가 쪽 밖으로 밀려 사라졌다.q…Q안의Tc가 밖으로 새던 것.- 큰 암호 문서 여는 데 56초 → 90ms.
- 구조 나무 잎을 자리 안 늘리고 담아 역할 이름이 깨지던 것.
정답 벤치 115/115(docling 95/102, pymupdf4llm 51/102). 정답 밖 27편에서 docling 과 제목 일치 278 (docling 만 141, 우리만 91), 표 73(docling 54). 자세한 것은 docs/compare.md.