まず、ずれ方から原因を切り分けます

症状起きやすい原因最初に試すこと
文字の横幅だけ違う元フォントと追加文字のフォントが異なる、またはサブセットフォントを再利用できない同系統のフォント・近い文字サイズへ調整する
文字が上下にずれるフォントごとのベースラインや文字領域の差表示倍率を上げ、位置を少しずつ調整する
元文字が端から見える白塗り範囲が元の字形より小さい背景を確認しながら白塗り範囲を広げる
保存後だけ見た目が変わる画面上の編集表示とPDFへの書き出し方式が異なる保存後のPDFを開き直し、最終ファイルで判断する
日本語だけ文字化けする日本語フォント未読込、CID/CMap、埋め込みフォントの制約保存設定と日本語フォントの状態を確認する

PDF内の文字は「段落」ではなく座標で置かれていることがあります

PDFはWordのように文章を編集する形式とは限りません。文字列が細かく分割され、それぞれに位置、文字サイズ、フォントなどの描画情報が付いているPDFがあります。そのため、同じ文字列へ変更しても、元フォントと新しいフォントの横幅が違えば同じ位置には収まりません。

特に帳票の小さな入力欄では、1〜2文字の変更でも右端がはみ出すことがあります。

元PDFのフォントをそのまま使えるとは限りません

PDFにはフォント全体ではなく、文書で使った字形だけを含む「サブセットフォント」が埋め込まれることがあります。たとえば元のPDFに「東京都」しか使われていなければ、別の漢字を同じ埋め込みフォントで追加できない場合があります。

また、日本語PDFではCID/CMapなどの対応情報を使うことがあり、画面に正しく表示できても、任意の別文字を同じ符号化で書き戻せるとは限りません。詳しくは日本語PDF編集で文字化けする原因で説明しています。

PDF Geckoで既存文字を直すときの保存上の注意

既存文字の編集では、元の文字領域を覆い、新しい文字を描画する経路があります。そのため、元のフォント情報を完全に引き継ぐ編集とは異なります。白塗りと新しい文字のサイズ・位置が一致しないと、元文字が見えたり、周囲の文字と高さが揃わなかったりします。

白塗りは見た目を覆う処理であり、元文字の安全な削除ではありません。個人情報などを完全に消す用途では専用の墨消し(redaction)が必要です。

保存設定でも結果が変わります

保存設定特徴確認ポイント
自動利用可能なフォント状況に応じて文字または画像として保存します。文字選択が必要なら保存後に実際に選択する
テキスト埋め込み追加文字を文字情報として保存します。日本語には日本語フォントが必要です。文字幅、フォント、コピー結果を確認する
画像焼き込み見た目を画像として固定します。表示は確認しやすい一方、文字検索・コピーが必要な用途か確認する

保存方式の詳細は編集したPDFを保存する方法で確認できます。

ずれを減らす実際の手順

  1. 元PDFを複製し、必ず元ファイルを残します。
  2. いきなり全文を直さず、まず1か所だけ編集します。
  3. 元文字に近いフォント系統・文字サイズを選びます。
  4. 白塗りを使う場合は、元文字の字形が端から出ていないか拡大して確認します。
  5. 保存してPDFを閉じ、保存済みファイルを開き直します。
  6. 100%表示だけでなく拡大表示でも位置・線・文字切れを確認します。
  7. 同じ設定で残りの編集を進めます。

完全一致が必要なら元データ編集が第一候補です

パンフレット、帳票の版下、厳密な印刷物など、フォント・字間・行間・座標まで元と一致させる必要がある場合は、PDFを後編集するより、Word、PowerPoint、Illustratorなど元の作成データを修正してPDFを書き出し直す方が確実です。

PDF Geckoは、PDFしか手元にないときの軽微な修正、追記、ページ整理などに向いています。用途に必要な精度を基準に使い分けてください。

同じ条件で確認する

検証用PDFには小さい文字と細い線を入れています。編集・保存後に見比べることで、保存方式による表示差を同じ入力ファイルで確認できます。検証手順はPDF Geckoの検証方法にまとめています。