本文へスキップ

PDF を OCR 処理

スキャンした文書に、検索できるテキストレイヤーを追加します。

お使いの端末で処理

このツールはブラウザーの中だけで動きます。ファイルがアップロードされることはなく、そのことはブラウザーのネットワークタブでご自身で確認できます。 ご自分で確かめてください。ブラウザーのネットワークタブを開いて見てください。残りの作業回数を尋ねる小さなリクエストが1つだけ表示されます。ツール名とハッシュだけで、ファイルは決して含まれません。

このツールでできること

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.

仕組み

  1. 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.
  2. Choose the language. English and Indonesian are installed, and the combined mode recognises both at once in a document that mixes them.
  3. Leave the mode on only pages without text unless you know for certain that every page is a scan.
  4. 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.
  5. 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.

よくある質問

認識の精度はどのくらいですか?
印刷された文字をきれいに 300 dpi でスキャンしたページなら、間違いは数か所程度に収まるのが普通で、結果には平均の確信度スコアが出るので、エンジンが自分の仕事をどう評価したかが分かります。薄いコピー、傾いたページ、詰まった段組み、装飾的な書体は、いずれも精度を下げます。100 点満点で 40 点を下回った語は、推測せずに捨てられます。
どの言語を読めますか?
英語とインドネシア語、そして同じ文書の中で両方を扱う複合モードです。原文と訳文が並んで印刷された契約書などに役立ちます。認識を成り立たせているのは言語モデルで、同梱されているのはこの 2 つだけなので、それ以外の言語の文書は、このツールがうまく扱えるものではありません。
初回に数メガバイトをダウンロードしたのはなぜですか?
認識エンジンとその言語データです。OCR を実行しただけで別のどこかに黙って接続してしまわないよう、第三者の CDN ではなくこのサイトから配信しています。英語がおよそ 11 MB、インドネシア語がおよそ 4 MB です。ブラウザがキャッシュするので 2 回目からはすぐ始まり、それ以降は接続がまったくなくても OCR は動きます。
「テキストのないページだけ」は実際に何をしますか?
各ページに既存のテキストレイヤーがあるかを調べ、ないページだけを認識します。スキャンした文書の多くには、スキャンされていないページが少なくとも 1 枚は混じっており、そこに OCR をかけると、正確なテキストが近似で置き換わってしまいます。文書全体にすでにテキストがある場合は、実行して手元のものより悪いものを作るかわりに、その旨をお伝えします。
手書きは読めますか?
読めません。エンジンは活字で学習しており、手書きはノイズとして返ってきます。語ではなく形に似た文字の羅列になります。署名、余白の書き込み、手で記入されたフォームは認識されません。同じページ上の活字は、それでも認識されます。
スキャンはどこかにアップロードされますか?
いいえ。描画はブラウザ内の 1 つの Web Worker で、認識は別の Web Worker で行われ、WebAssembly のコアも言語データも、CDN ではなくこのサイト自身のオリジンから届きます。直接確かめられます。ページを一度読み込み、接続を切ってから、スキャンを 1 本通してみてください。

関連ツール