記事
ブラウザのPDFツールキット:整え、配置し、構造化する
PDFの作業の大半は三つのまとまりに分かれます。文書を読める状態にすること、ページを紙面に配置すること、そして文書に付随するデータを編集することです。このサイトはそのまとまりを網羅する小さなツールを約11個そろえており、どれもブラウザのタブ内でファイルを処理します。PDFは端末から出ることなく開かれ、変更され、保存されるので、同じツールが給与明細にも機密契約書にも等しく役立ちます。
スキャンを整え、補正する
スキャナーやスマホのカメラから取り込んだページは、保存する価値が出る前にいくつかの補正を要することがよくあります。回転ツールは横向きや上下逆に入ったページを90度刻みで回し、古い「スキャンPDFの回転」ガイドの代わりになります。傾き補正ツールはわずかに斜めになった文字をまっすぐにします。これは後で文字認識を走らせる予定のときに効いてきます。グレースケールツールはカラーチャンネルを落とし、ファイルを小さくすると同時に、フラットベッドスキャナーが白い紙に加える薄い色味を取り除きます。修復ツールは自分の限界に正直です。pdf-libが解析して保存し直せる範囲で破損したPDFを組み立て直すので、他のリーダーが拒むファイルの多くを救えますが、そもそもファイルに書き込まれていない内容は復元できません。開けない文書への最初の一手として使ってください。保証ではありません。

ページを配置する
文書が読める状態になったら、ページが紙面にどう収まるかを変えたくなるかもしれません。トリミングツールは余白を切り詰めたり、ページを必要な領域まで切り出したりします。リサイズツールはページの寸法を変え、たとえばUSレターからA4へ変えることで、別の国でも文書が正しく印刷されます。N-upツールは複数ページを1枚の紙に並べて配置し、配布資料や用紙の節約に便利です。交互結合ツールは2つのファイルをページごとに差し込みます。これを使う最も一般的な理由は、片面スキャナーで行った両面スキャンです。表面を1つのファイルにスキャンし、束をめくって裏面を2つ目のファイルにスキャンし、両者を混ぜ合わせてページを元の順序に戻します。これらのツールはどれもテキストをラスタライズしないので、デジタルで作られたPDFはレイアウト変更後も選択可能なテキストを保ちます。
メタデータと構造
最後のまとまりは、ページを取り巻くデータです。メタデータツールはタイトル、著者、件名、キーワードの各フィールドを読み書きし、文書を共有する前にそれらを消去できます。これは小さくても本物のプライバシー対策です。しおりツールはPDFリーダーがサイドパネルに表示するクリック可能なアウトラインを作るので、長い報告書も辿りやすくなります。HTMLからPDFへのツールは逆向きに働き、貼り付けたマークアップをPDFに変えますが、はっきりした注意点があります。結果をページの画像として描画するので、出力は選択可能なテキストではありません。PDFから実際に文字を取り出したいときは、二つの異なる道があります。ファイルがデジタルで作られたものなら、pdf-to-textツールが埋め込まれたテキストを直接かつ正確に読みます。ファイルがスキャンなら読むべきテキストはないので、光学文字認識が必要です。これは絵から文字を推測するため、間違えることがあります。自分がどちらの場合かを知っておくと、多くの混乱を避けられます。
PDFの内部構造とXREFテーブル
PDFファイルは線形ドキュメントではなく、ファイル末尾のCross-Reference(XREF)テーブルで接続された個別オブジェクト(辞書、配列、ストリーム、数値)のデータベースです。XREFテーブルは各オブジェクトIDをその正確なバイトオフセットにマッピングします。一部のデスクトップエディタは、変更を増分更新として保存します。変更されたオブジェクトのみを上書きする新しいXREFセクションをファイルに追記し、元のバイトはその下にそのまま残します。pdf-libを基盤としたブラウザベースのツールはこれとは異なる方法で動作します。文書全体をメモリ内のオブジェクトグラフとして解析し、要求された変更を適用し(例えばページのRotateエントリを0から90に書き換えるなど)、その後ファイル全体を1つの新しいPDFとしてゼロから再生成します。この完全な再生成により、ツールの実行中は文書全体がメモリに収まる必要があります。だからこそ各ツールは最大入力サイズを設けており、その内容がサーバーにアップロードされることは決してありません。

ストリーム圧縮とPDF修復の仕組み
PDFのページコンテンツ(テキスト描画コマンド、ベクターパス、ラスター画像)はStreamオブジェクト内に格納されており、ほぼ常にFlateDecode(zlib)で圧縮されています。PDFが破損した場合、損傷は通常、不正なXREFテーブルまたは切り詰められた圧縮ストリームのどちらかです。修復ツールは破損したXREFテーブルを完全にバイパスし、生のバイトストリームをリニアスキャンして、個別オブジェクトを囲むobjとendobjマーカーを検索します。それらのオブジェクトを抽出し、関連するストリームを展開しようとし、新しい整形式XREFテーブルをゼロから構築します。Flate圧縮ストリーム自体の内部に破損がある場合、その特定のオブジェクトのデータは回復不可能です。ドキュメント構造は復元できますが、影響を受けたページは空白または画像が欠落している可能性があります。
この記事で紹介するツール
- スキャンページの傾き補正傾いたスキャンPDFや画像をブラウザ内で完全に補正, アップロード不要。
- PDFをグレースケールにカラーPDFをブラウザ内で完全にグレースケールに変換, アップロード不要。
- PDFを修復破損または肥大化したPDFをクリーンで正しい形式のコピーに再構築, すべてブラウザ内で、アップロード不要。
- PDFページの回転PDFの選択したページ(90、180、270°)をアップロードせずに回転します。
- PDFページをトリミングPDFページを視覚的にトリミング, 領域を選択してすべてのページまたは1ページだけに適用、アップロード不要。
- PDFページをリサイズ全ページをA4、Letter、Legal、A3、A5に, またはパーセントで, アップロードせずに拡大縮小。
- PDF N-up(1枚あたりのページ数)用紙を節約するため、各シートに2、4、6、8、9、16ページのPDFを配置します。100%ブラウザ内、アップロードなし。
- 2つのPDFを交互に結合2つのPDFのページを交互に挿入(A1、B1、A2、B2…)して両面スキャン用に。アップロード不要。
- PDFメタデータ削除 / 編集PDFの隠れたメタデータ(作成者、タイトル、ソフトウェアなど)をブラウザ内で削除または編集します。アップロードなし。
- PDFにブックマークを追加任意のPDFにクリック可能なブックマークのアウトライン(目次)を追加, タイトル、ページ番号、ネストを定義。100%ブラウザ内、アップロード不要。
- HTMLをPDFに貼り付けた HTML をブラウザで PDF に変換(ベストエフォート、ラスター)。アップロードなし。
よくある質問
これらのPDFツールは私のファイルをサーバーにアップロードしますか?
いいえ。これらのツールはどれも、JavaScriptとWebAssemblyを使ってブラウザのタブ内でPDFを開き、編集し、保存します。ファイルはディスクからページへ読み込まれ、結果はそのままダウンロードへ書き出されるので、ネットワーク越しに何も送られません。ツールの使用中にブラウザのネットワークパネルを開いて確認するか、ページの読み込み後にインターネットを切断してもツールが動き続けるのを見て確かめられます。
修復ツールはどんな壊れたPDFでも直せますか?
どんなファイルでもとはいきません。修復ツールは文書を解析し直し、形式の整った新しいコピーを書き出します。これにより壊れた相互参照テーブルや、PDFが開けなくなる多くの構造的な欠陥が直ります。本当に失われたデータを作り出したり、強力な暗号化を解いたりはできません。手早い最初の一手として扱ってください。ファイルが救えたら完了ですし、救えなくても何も失っていないので、元のファイルを探せます。