ハコツールズ

ファイル処理

PDFテキスト抽出

PDF内のテキストを一括抽出してコピーやtxtダウンロードができる無料ツール。ページ範囲指定・ページ区切り表示に対応。処理はブラウザ内で完結し、社内文書を外部に送りません。

公開日:

PDF ファイルをドロップまたは選択

スキャン画像だけの PDF(テキスト層なし)は抽出できません

使い方・仕組み解説

PDFテキスト抽出とは?

PDFテキスト抽出は、PDFファイル内の文字だけを取り出して、コピーやテキストファイル(.txt)として保存できる無料ツールです。会員登録もアプリのインストールも不要です。処理はすべてお使いのブラウザ内(JavaScriptライブラリpdf.js)で完結し、選択したPDFがサーバーにアップロードされることは一切ありません。

使い方

  1. PDFファイルをドラッグ&ドロップ、または選択します
  2. 必要であれば「ページ範囲」に抜き出したいページ(例: 1-3,5)を入力します。空欄のままなら全ページが対象になります
  3. ページの区切りを見た目に残したい場合は「ページ区切りを表示する」にチェックします
  4. 「テキストを抽出する」を押すと、下にテキストエリアが表示されます。内容はそのまま編集できます
  5. 「クリップボードにコピー」でコピー、または「.txtでダウンロード」でファイルとして保存します

どんな場面で使う?

PDFの中身をコピー&ペーストで使い回したいときに出番があります。実務でよくあるのは次のような場面です。

  • 資料の内容を翻訳・要約したい: 英語の論文や海外の契約書をPDFで受け取ったとき、テキストを抽出して翻訳サービスやAIチャットに貼り付けます
  • PDFの文章を別の文書に転記したい: 報告書や議事録のPDFから必要な段落だけをWordやメールに引用します
  • 大量のPDFから文字情報を集計したい: 請求書や仕様書のPDFをテキスト化し、表計算ソフトでの集計や検索がしやすい形に変換します
  • PDFの文章を音声読み上げソフトにかけたい: 画像として貼り付けられた文字ではなく、選択・コピーできる文字列として取り出します

抽出したテキストの行や単語の並びはどうやって決まる?

PDFの中には「文字」だけが座標付きで並んでいて、行や段落という概念がありません。本ツールは、pdf.jsが返す各文字列の座標(x座標・y座標・幅・フォントの高さ)から行を組み立てています。

具体的には、y座標が近い(フォント高さの半分以内)文字列を同じ行としてまとめ、その行の中をx座標の小さい順に並べます。隣り合う文字列の隙間がフォント高さの0.25倍を超えたら単語の区切りとして半角スペースを挿入し、3倍を超えたら表の列や段組みの区切りとみなしてタブを挿入します。例えば「東京」の右端と「駅」の左端の隙間が1pt(フォント高さ10ptの0.25倍=2.5pt未満)なら続けて「東京駅」と連結し、「駅」と「から」の隙間が8ptならしきい値を超えるため「東京駅 から」のように空白が入ります。

2段組みのレイアウトは、この方式だと左右の段が同じ行としてつながってしまい、「左の段を上から下まで読み切ってから右の段に移る」という自然な順序にはなりません。x座標の隙間だけでは「同じ行内の列の区切り」と「独立した段」を区別できないためです。段組みのPDFを扱う場合は、抽出後にテキストエリア内で並び替えてください。

実際の変換を5つの文字列で追ってみます。次が入力です。PDFの中では文字列が必ずしも読む順に並んでいるわけではないため、順序はあえてばらしてあります。単位はすべてpt。フォント高さは10ptで揃えました。

文字列x(左端)y(ベースライン)
から13970020
東京10070020
1時間52分20068060
12170010
所要時間10068040

これを本ツールの行組み立て処理に通すと、次の2行になります。この表の中身はページのビルド時に実際の処理を呼んで作っているため、しきい値を変えればここも変わります。

抽出結果
1行目東京駅 から
2行目所要時間 → 1時間52分

y座標が700の3つが1行目、680の2つが2行目にまとまりました。1行目では「東京」の右端(100+20=120)と「駅」の左端121の隙間が1ptしかないため連結され、「駅」の右端131と「から」の左端139の隙間8ptはしきい値2.5ptを超えるので半角スペースが入ります。2行目の隙間は60pt。フォント高さの3倍(30pt)を超えるため列の区切りと判定されました。矢印はタブ文字です。ダウンロードした.txtや表計算ソフトへの貼り付けでは、ここが実際のタブになり列が揃います。

コピーしたPDFの文章が改行だらけになるのはなぜ?

PDFに段落という単位が存在せず、見た目の1行ごとに改行が入るからです。PDFが持っているのは「どの文字をどの座標に描くか」という情報だけで、どこからどこまでが1つの段落かは記録されていません。

そのため、PDFビューアからのコピー&ペーストでは決まった崩れ方をします。パターンは3つです。本ツールでも同じ制約があります。

  • 1文の途中で改行が入る: 見た目で折り返された位置がそのまま改行になります。1つの段落が5行に見えていれば、貼り付けた結果も5行になります
  • 単語の間に不自然な空白が入る: 行の右端を揃えるために字間を広げているPDFでは、その広がりが単語の区切りと判定されます
  • 英文が行末で分割される: 行末のハイフネーションで informa-tion に分かれていると、そのまま2つに割れて残ります

本ツールは抽出結果を編集可能なテキストエリアに出します。そのまま直せます。まとめて整えるなら、コピーしたテキストをエディタに貼り、改行を空白に置換するのが手早い方法です。

ただし、貼り付け先によっては直す必要がありません。AIチャットや翻訳サービスは改行の入った文章をそのまま扱えるので、多少崩れていても意味は正しく伝わります。整形に時間をかけるのは、文書に転記するときや文字数を数えるときだけで十分です。

ページ指定の書き方は?

「1-3,5」のようにカンマ区切りで範囲と単独ページを組み合わせて指定します。「1-3」は1ページ目から3ページ目まで、「5」は5ページ目だけを指します。空欄のままなら全ページが抽出対象になります。総ページ数を超える番号や、開始が終了より後になっている範囲を入力するとエラーメッセージが表示されます。

スキャンしたPDF(テキスト層なし)はどうなる?

抽出できません。複合機やスキャナーアプリで紙をスキャンしただけのPDFは、見た目は文字でも実体は1枚の画像であり、選択・コピーできる文字情報(テキスト層)を持っていません。本ツールはそのテキスト層をそのまま取り出す仕組みのため、テキスト層自体がない画像PDFからは何も抽出できません。

文書作成ソフトから保存紙をスキャンしただけ見た目の描画画面に見える文字の形ページ全体が1枚の画像文字も絵として写っているテキスト層文字データと座標テキスト層なし本ツールが読むのはこの層読む対象がなく空になる

その場合は結果に「テキスト層が見つかりませんでした」という案内を表示します。画像から文字を認識するOCR(光学文字認識)機能は搭載していません。文字が選択できるかどうかは、抽出前にPDFビューアで該当箇所をドラッグしてみると確認できます。文字が選択できなければ画像PDFです。

他のPDFツールとどう使い分ける?

注意事項

  • スキャン画像だけで構成されたPDF(テキスト層なし)からは抽出できません。OCRには対応していません
  • パスワード(暗号化)が設定されたPDFは読み込めません。事前にパスワードを解除してからご利用ください
  • 表や2段組みのレイアウトは、行や列の並びが元のレイアウトと完全に一致しない場合があります。抽出後にテキストエリア内で編集してください
  • 抽出したテキストはブラウザ内に保存されません。ページを再読み込みすると最初からやり直しになります

ブラウザだけでファイルを処理する仕組みは画像・PDFの変換はインストール不要?ブラウザだけで処理する方法のガイドで解説しています。

よくある質問

PDFのファイルはサーバーにアップロードされますか?
アップロードされません。テキストの抽出はすべてお使いのブラウザ内(pdf.js)で完結し、選択したPDFがサーバーへ送信されることはありません。契約書や社内資料などの機密文書も安心して処理できます。
スキャンしたPDFからテキストを抽出できますか?
できません。スキャン画像だけで構成されたPDFにはテキスト層がなく、抽出結果は空になります。本ツールは画像から文字を認識するOCR機能を備えていないため、その場合は「テキスト層が見つかりませんでした」という案内を表示します。
ページ指定はどう書けばいいですか?
「1-3,5」のようにカンマ区切りで範囲と単独ページを組み合わせます。「1-3」は1〜3ページ目、「5」は5ページ目単独を指します。空欄のままなら全ページが対象になります。
表や2段組みのPDFでも正しい順序で抽出できますか?
表はタブ区切りでおおむね列がずれずに抽出できますが、2段組みのレイアウトは左右の段が同じ行としてつながり、段組みとして自然な順序にはなりません。抽出後にテキストエリア内で編集して調整してください。

関連ツール