ハコツールズ

PDF比較・差分チェック

2つのPDFの文章を行単位で比較し、変更・追加・削除を左右に並べてハイライト。行のずれを吸収して突き合わせ、変わった文字だけを濃く塗ります。差分は.txtでも保存できます。

入力した内容やファイルは、この端末のブラウザの中だけで処理します。サーバーには送りません。確かめ方

公開: / 制作・運営: ハコツールズ運営者

旧(変更前)

PDF をドロップまたは選択

新(変更後)

PDF をドロップまたは選択

PDF の比較・差分チェックは、2 つの PDF から文章を取り出して行ごとに突き合わせ、どこが変わったかを機械的に洗い出す作業です。改訂前と改訂後の契約書を並べて読み比べる代わりに、変わった行だけを色分けして見せます。

目で読み比べる確認は、文字の増減が少ないときほど見落とします。金額の桁が 1 つ違う、日付が 1 日ずれている、条文が 1 つ増えているといった変更は、紙を並べても気づきません。行単位で突き合わせれば、差分の件数そのものが先に分かります。

  1. 左の枠に改訂前(旧)の PDF、右の枠に改訂後(新)の PDF をドラッグ&ドロップ、またはクリックして選びます
  2. 順番を間違えたら「旧と新を入れ替える」を押します。追加と削除が逆に出ているときはこれで直ります
  3. 「比較する」を押すと、差分の件数と、変わった行の一覧が出ます
  4. 「前の変更へ」「次の変更へ」で差分を順番にたどります。一致した行も読みたいときは「差分だけ表示する」のチェックを外します
  5. 「差分を .txt で保存」で、変更箇所の一覧をテキストファイルとして保存できます

どうやって 2 つの PDF の違いを見つけている?

3 段階で求めます。まず各ページの文章を pdf.js で取り出し、1 行ずつに分解します。次に 2 つの行の列から最長共通部分列を求めます。どちらにも同じ順序で現れる行の、最も長い並びのことです。最後に、そこから外れた行を削除と追加に振り分けます。削除の直後に追加が並んだ場所は、同じ行が書き換えられたものとみなし、「変更」として左右に対応づけます。

たとえば旧 3 行・新 4 行の次の条文を比べると、差分は 3 件(変更2 / 追加 1 / 削除 0)、一致は1 行と判定されます。

判定旧(変更前)新(変更後)
変更第5条 契約金額は100万円とする第5条 契約金額は120万円とする
変更第6条 支払期日は月末とする第6条 支払期日は翌月10日とする
一致第7条 契約期間は1年とする第7条 契約期間は1年とする
追加(なし)第8条 協議事項は別途定める

第7条は文面が同じなので、新しい側で 1 行うしろにずれても「一致」です。行番号で突き合わせる方式だと、1 行の追加より下の全部が差分になってしまいます。共通部分列で対応づけるのは、この行のずれを吸収するためです。

行に分解するとき、連続する空白とタブは半角スペース 1 つにそろえます。PDF から取り出した文章は、同じ文面でも字間の広い行で空白の量が変わります。そろえておかないと、見た目の同じ行が「変更」として大量に並びます。空行は突き合わせの対象から外します。

行の中のどこが変わったかも分かる?

分かります。変更と判定した行は、前後の共通部分を取り除いて変わった文字だけを濃く塗ります。上の例の第6条では、共通する「第6条 支払期日は」と「とする」を除いた「月末」→「翌月10日」の部分だけが色で示されます。

行ごと塗ってしまうと、長い条文のどこを読み直せばよいのか分かりません。桁や日付の変更は数文字しか違わないので、そこだけを目立たせます。

比較結果はどう保存する?

「差分を .txt で保存」を押すと、変更箇所だけを並べたテキストファイルが手元に保存されます。旧側の行の頭に「-」、新側の行の頭に「+」が付く、プログラムの差分表示と同じ形式です。上の例ならこうなります。

PDF比較の結果
--- 旧: 契約書_旧.pdf
+++ 新: 契約書_新.pdf
変更 2 / 追加 1 / 削除 0(一致 1 行)

[旧 1 ページ / 新 1 ページ] 変更
- 第5条 契約金額は100万円とする
+ 第5条 契約金額は120万円とする

[旧 1 ページ / 新 1 ページ] 変更
- 第6条 支払期日は月末とする
+ 第6条 支払期日は翌月10日とする

[新 1 ページ] 追加
+ 第8条 協議事項は別途定める

一致した行は書き出しません。メールや議事録に貼って「この改訂で変わったのはこの 2 か所です」と示すところまでを 1 ファイルで済ませるためです。ファイル名は 2 つの PDF の名前をつないだものになります。

スキャンした PDF は比較できる?

比較できません。紙をスキャンした PDF は中身が画像で、文字のデータを持っていないためです。このツールは画像から文字を認識する OCR には対応していないので、どちらか一方でも文字が取り出せなかった場合は「比較できません」と表示して処理を止めます。

文字のデータを持っているかどうかは、PDFテキスト抽出ツールに読み込ませると確かめられます。抽出結果が空なら、そのファイルは画像だけの PDF です。

2 段組や表組みのページで差分が多く出るのはなぜ?

文章を取り出す順番が、人が読む順番と違うためです。PDF は「何ページ目のどの位置にどの文字を置くか」だけを持っていて、段組みや表の構造は持っていません。このツールは文字の縦位置で行をまとめ直しますが、2 段組のページでは左右の段が同じ行としてつながります。

旧と新で段の幅や表の列幅が変わると、同じ文面でも行のまとまり方が変わり、差分が実際より多く出ます。差分の件数が多すぎると感じたら、段組みのないページだけをPDF結合・分割ツールで抜き出してから比べてください。

契約書や見積書の改訂版チェックにどう使う?

改訂前後の版が手元にあり、変更点を自分で確かめたい書類で使います。多いのは次の場面です。

  • 契約書の改訂: 先方から戻ってきた版と自社が送った版を比べ、金額・期日・解除条件が書き換えられていないかを確かめます
  • 見積書の差し替え: 再提出された見積書と前の版を比べ、単価と数量のどこが動いたかを洗い出します
  • 社内規程・就業規則の改定: 新旧対照表が付いていない改定版から、変わった条文を機械的に拾います
  • 仕様書のレビュー: 版が上がった仕様書を前の版と比べ、合意済みの項目が消えていないかを確かめます
  • 申請書類の最終確認: 提出直前の版と、承認を受けた版が同じ内容かを確かめます

年度末の 3 月は、契約更新と規程改定が重なって新旧の版が増える時期です。新旧対照表を作る前の下調べとしても使えます。

オンラインの PDF 比較サービスとの違いは?

ファイルをアップロードしないことです。オンラインの PDF 比較サービスはほとんどがファイルを自社のサーバーに送って処理します。比較したいのは契約書・見積書・人事規程といった外に出せない書類なので、「中身を見せたくないファイルを他社に預ける」という矛盾が起きます。このツールはブラウザの中だけで処理するため通信が発生せず、機内モードでも動きます。

もう 1 つは日本語の扱いです。日本語には単語の区切りがないため、英語前提の比較ツールでは行のまとまり方が崩れ、差分が過剰に出ます。このツールはPDFテキスト抽出で使っている行の組み立て直し(文字の縦位置で同じ行をまとめ、横の隙間の大きさで区切りを決める処理)をそのまま使っています。

比較できないものや差分が多く出るのはどんなとき?

  • 比較するのは文章だけです。レイアウト・図・表の罫線・印影・押印の有無・フォントや文字色の違いは判定できません。見た目の違いを確かめたいときは、PDF画像変換で両方を画像にしてから見比べてください
  • スキャンした画像だけの PDF は比較できません(OCR 非対応)。どちらか一方でも文字が取り出せなければ処理を止めます
  • 2 段組・表組みのページは文章を取り出す順番が崩れ、差分が実際より多く出ることがあります
  • 空行と、行の中の連続した空白は無視します。空白の量だけが違う行は「一致」と判定されます

パスワード付きのPDFは読み込める?

  • パスワードで保護された PDF は読み込めません。保護を外してから読み込んでください
  • 行数の多い PDF どうしを全面的に比べると計算量が上限に達します。その場合は章ごとに分けてから比べてください
  • 差分の一覧は法的な新旧対照表の代わりにはなりません。最終的な確認は原本で行ってください

よくある質問

2つのPDFの違いを比較するには?
改訂前と改訂後の PDF を枠に読み込んで「比較する」を押すだけです。両方から文章を取り出して行ごとに突き合わせ、変更・追加・削除を左右に並べて色分けします。行の位置がずれても、文面が同じなら一致と判定します。
スキャンしたPDFも比較できますか?
できません。紙をスキャンした PDF は中身が画像で、文字のデータを持っていないためです。本ツールは OCR(画像から文字を認識する処理)に対応していないので、どちらか一方でも文字が取り出せなければ比較できないと表示して止まります。
図やレイアウトの違いも分かりますか?
分かりません。比較するのは文章だけで、図・表の罫線・印影・フォントや文字色の違いは判定できません。見た目の違いを確かめたいときは、PDF画像変換で両方を画像にしてから見比べてください。
このツールをシェア: