Dosya Kalemi
All tools

OCR PDF

Make scanned text selectable again.

Checking the local service…

What this tool does

Reads the words on a scanned page and puts an invisible text layer behind it, so the document can be selected, searched and copied while looking exactly as it did. Crooked scans are straightened before reading, which noticeably improves accuracy, and pages that already carry text are left alone so nothing gets doubled. Recognition is done by Tesseract inside the optional service on your own computer, so the scan reaches a program on your machine and not the internet. A public web page cannot reach that service, so this tool is for people running Dosya Kalemi locally.

How to use it

  1. Make sure the local conversion service is running. The page checks on open, and Check again picks it up if you started it afterwards.
  2. Drop the scanned PDF.
  3. Pick the text language. The list holds the languages installed on the service, and English is preselected when it is there.
  4. Run it and download the searchable PDF. A long scan can take several minutes.

Common questions

The language I need is missing from the list.
The list comes straight from the language data installed on the service. The Docker image already includes Turkish; a Windows Tesseract install ships with English only, so tur.traineddata has to be added and the service restarted. service/README.md walks through both ways of doing it.
Does the page change after OCR?
No. The recognised text is placed behind the image and stays invisible, so the document looks the same but the words can be selected and found. Pages that already had a text layer are skipped rather than read twice.
The tool says the local service is not running. What now?
OCR needs three real programs — OCRmyPDF, Ghostscript and Tesseract — which a browser tab cannot host, so they live in a small service on your own computer. Opened from the published site, the browser will never find it: pages served over the web are blocked from connecting to your machine. Run Dosya Kalemi locally, start the service in the service folder, then press Check again.