PDF OCR
스캔한 문서에 검색되는 텍스트 레이어를 넣어요.
이 도구는 브라우저 안에서만 실행돼요. 파일은 절대 업로드되지 않으며, 브라우저의 네트워크 탭에서 직접 확인할 수 있어요. 직접 확인해 보세요. 브라우저의 네트워크 탭을 열어 두고 지켜보면, 남은 작업이 있는지 묻는 작은 요청 하나만 보여요. 도구 이름과 해시뿐이고, 파일은 절대 포함되지 않아요.
이 도구가 하는 일
A scanned PDF is a picture of a document, so searching it finds nothing and selecting a word selects nothing. This renders each page, recognises the words on it, and draws them back over the image invisibly, so the page looks as it did and the words are suddenly there. Recognised pages are rebuilt from that rendering: they come out grayscale at the resolution you chose, and any links, form fields or annotations they carried do not survive. Pages that already have real text are left alone, byte for byte.
Reach for it whenever a document arrived as pictures rather than words: a contract someone scanned and emailed, a receipt photographed on a phone, a fifty-page report from an office machine, or an old paper you need to quote from without retyping it.
작동 방식
- Drop the scan onto this page. PDFs work, and so do JPEG, PNG, WebP and TIFF images - an image becomes a one-page PDF first.
- Choose the language. English and Indonesian are installed, and the combined mode recognises both at once in a document that mixes them.
- Leave the mode on only pages without text unless you know for certain that every page is a scan.
- Set the resolution if you need to. 300 dpi suits ordinary print; go towards 400 for very small type, or down towards 150 for a long document on a slow machine.
- Choose whether you want the searchable PDF, a plain text file, or both, then press Run OCR.
Recognition costs something on the pages it touches, and it is better to know before than after. Each recognised page is rendered to a grayscale image at your chosen resolution, and the new page is that image with the invisible words drawn over it. Colour on those pages is gone, and their links, form fields and annotations are not carried across. Skipped pages are copied untouched. The file usually grows, sometimes a lot, because a 300 dpi page image is bigger than the compressed scan it replaced - Compress PDF is the normal second step.
The words have to land in the right place or a text layer is worse than none. The recogniser returns each word's box in the pixels of the rendered image, counting down from the top, while a PDF page counts up from the bottom, so every box is scaled by the render ratio and flipped. Words scored below 40 out of 100 are left out entirely: a confidently wrong word sends search to the wrong page, while a gap only sends it nowhere.
Nothing is uploaded, and that includes the recogniser itself. tesseract.js fetches its WebAssembly core and its language data from a third-party CDN unless told otherwise, which would have meant your scan quietly announcing itself to a third party the first time anyone here ran OCR, so all of it is served from this site instead. The cost is a one-off download. The benefit is that recognition involves nobody else at all, which you are welcome to check in the network tab.
Resolution decides both how accurate the reading is and how long you wait for it. Below about 200 dpi, thin serifs and small print break up and accuracy falls away quickly. Above 300 the gains get small while render time and output size keep climbing. 300 is the default because that is roughly where the curve flattens for ordinary body text.
이 도구가 할 수 없는 일
- Handwriting is not recognised. The engine is trained on printed type, and a handwritten page comes back as scattered nonsense rather than words.
- Only English and Indonesian models are installed, so a document in another language cannot be read properly here.
- Recognised pages are rebuilt as grayscale images, so colour is lost on them and their links, form fields and annotations do not survive.
- The output is a machine's reading, not a proofread transcript. Faint scans, unusual typefaces, tables and tight columns all produce mistakes.
자주 묻는 질문
- 인식 정확도는 어느 정도인가요?
- 깨끗한 300dpi 인쇄물 스캔이라면 한 쪽에 오류가 몇 개 정도로 돌아오고, 결과에 평균 확신도 점수가 함께 나와서 엔진이 자기 작업을 어떻게 판단했는지 볼 수 있어요. 흐릿한 복사본, 비뚤어진 페이지, 좁은 단, 장식적인 서체는 모두 그 점수를 떨어뜨려요. 100점 만점에 40점을 밑도는 단어는 추측하지 않고 버려요.
- 어떤 언어를 읽을 수 있나요?
- 영어와 인도네시아어, 그리고 한 문서 안에서 둘을 함께 다루는 결합 모드예요. 번역문과 나란히 인쇄된 계약서 같은 데 쓸 만해요. 인식이 되게 만드는 것은 언어 모델인데 그 두 가지만 들어 있어서, 다른 언어로 된 문서는 이 도구가 잘 다루지 못해요.
- 처음에 왜 몇 메가바이트를 내려받았나요?
- 인식 엔진과 언어 데이터예요. OCR을 돌리는 일이 조용히 남에게 연결되는 일이 되지 않도록 외부 CDN이 아니라 이 사이트에서 받아요. 영어는 약 11MB, 인도네시아어는 약 4MB예요. 브라우저가 캐시하니 두 번째부터는 바로 시작하고, 그다음부터는 연결이 전혀 없어도 OCR이 동작해요.
- 텍스트가 없는 페이지만은 실제로 무엇을 하나요?
- 페이지마다 기존 텍스트 레이어가 있는지 살펴보고 없는 페이지만 인식해요. 스캔한 문서에는 대개 애초에 스캔되지 않은 페이지가 한 장쯤 섞여 있는데, 거기에 OCR을 돌리면 정확한 텍스트가 어림값으로 바뀌어요. 문서 전체에 이미 텍스트가 있으면 도구가 돌리는 대신 그렇다고 알려 줘요. 시작할 때보다 나쁜 결과를 만들지 않으려고요.
- 손글씨도 읽을 수 있나요?
- 아니요. 엔진은 인쇄된 활자로 학습되어서 손글씨는 잡음으로 돌아와요. 단어가 아니라 모양을 닮은 글자들이죠. 서명이나 여백의 메모, 손으로 채운 양식은 인식되지 않아요. 같은 페이지의 인쇄된 글자는 그대로 인식돼요.
- 스캔본이 어딘가로 업로드되나요?
- 아니요. 렌더링은 브라우저의 한 Web Worker에서, 인식은 다른 Web Worker에서 이뤄지고, WebAssembly 코어와 언어 데이터까지 CDN이 아니라 이 사이트 자체 출처에서 와요. 직접 확인해 보세요. 페이지를 한 번 열어 둔 다음 연결을 끄고 스캔본을 돌려 보면 돼요.