LLM 토큰 낭비를 막아주는 로컬 PDF-to-Markdown 변환기를 만들었습니다.
I built a local PDF-to-Markdown converter so you don't have to burn LLM tokens.
핵심 요약
브라우저에서 로컬로 PDF를 마크다운으로 변환해 LLM 토큰 사용량을 획기적으로 줄여주는 도구인 LiteDoc을 소개합니다.
- 로컬 처리 — 서버 없이 브라우저에서 PDF를 마크다운으로 변환함
- 토큰 절약 — PDF를 텍스트와 이미지로 분리해 LLM 입력 비용을 최소화함
- 고급 기능 — LaTeX 수식, 아랍어, 깨진 폰트 감지 및 이미지 렌더링 지원
- 기술적 특징 — PDF.js 기반으로 헤더/푸터 제거 및 스마트 단어 결합 수행
Claude나 ChatGPT에 그냥 PDF 파일 통째로 때려 박고 있다면, 토큰이랑 돈 둘 다 낭비하는 짓임. 그래서 내가 LiteDoc을 만들었다. 이거 100% 클라이언트 사이드 툴이라 브라우저에서 로컬로 PDF 처리함.
하는 일:
-
서버 거칠 필요 없이 메모리에서 바로 PDF 압축 해제.
-
텍스트 추출하고, 포함된 이미지 따로 뽑아내서 깔끔한 Markdown으로 구조화함.
-
LaTeX 수식이랑 오른쪽에서 왼쪽으로 읽는 아랍어도 기본 지원.
-
인코딩 꼬인 "외계어" 폰트도 다 잡아냄. 텍스트 레이어 깨져 있으면 해당 페이지나 텍스트 영역을 자동으로 이미지로 렌더링함.
-
.md 파일이랑 최적화된 이미지 폴더를 ZIP으로 묶어서 내뱉음.
여기서 써볼 수 있음: litedoc.xyz
Markdown 결과물
Page 1 # Deep Structural Neural Mapping Deep learning strategies often fail when executing unstructured inputs directly. The loss function is defined as: $$L(\theta) = -\frac{1}{N}\sum_{i=1}^{N} \left[ y_i \log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i) \right]$$ ## Page 2 [IMAGE: academic_paper_p2_img1.jpg] ### Arabic Sample Markdown إلى صيغة PDF هذا التطبيق أداةً مجانيةً لتحويل ملفات 원리
PDF.js랑 JSZip 써서 브라우저 안에서만 돌아감. 추출 엔진은 X-gap 인식 스마트 단어 결합 방식을 써서 문장 깨지는 거 막아주고, 수학적으로 단 나누기 감지해서 폰트 크기별로 Markdown 헤딩(H1/H2/H3) 매핑함. 반복되는 머리말이랑 꼬리말도 알아서 지워버림. 만약 호환 안 되는 유니코드 섞여 있으면(개인 폰트 인코딩 썼다는 뜻임), 그 폰트는 텍스트 추출 포기하고 바로 캔버스 기반 이미지 렌더링으로 전환함.
토큰 아끼는 법
LLM이 비전이나 PDF 래스터화할 때 돈 엄청 떼감(페이지당 대략 850 토큰). LiteDoc은 로컬에서 처리하니까 AI 내부 래스터라이저를 거칠 필요가 없음. 원본 텍스트만 쏙 뽑아내고 포함된 이미지도 저/중해상도로 다시 압축함. 50페이지짜리 무거운 PDF 올리는 대신, 텍스트랑 필요한 이미지만 골라서 넣으면 됨. 수만 토큰씩 쓰던 거 그냥 순수 글자 수만큼만 쓰게 되는 거임.
