ページ全体の境界
ページを印刷する物理媒体を定義します。その外側の内容は、意図されたPDFページを変えずに破棄できます。
MediaBoxは物理的なページ全体の境界を表します。 CropBoxは通常、ビューアが表示または印刷する領域を表します。
CropBoxを変えると、通常は見える範囲だけが変わり、PDF内の内容は残ります。
復元テストを見る ↓各ボックスはデフォルトユーザー空間の座標です。表示、印刷、断裁、プリプレスを導くもので、5つの独立したコンテンツレイヤーではありません。
ページを印刷する物理媒体を定義します。その外側の内容は、意図されたPDFページを変えずに破棄できます。
準拠ビューアに表示または印刷する矩形を伝えます。クリッピングはしますが、ページのコンテンツストリーム自体は書き換えません。
断裁や仕上げのずれに対応するための追加画像領域を含められます。
TrimBoxは仕上がり寸法、ArtBoxは作成者が意図した意味のあるコンテンツ範囲を表します。
LetterサイズのテストではMediaBoxを固定したまま、CropBoxだけを内側へ移動しました。コンテンツストリームと埋め込みリソースはファイル内に残りました。
MediaBox [0 0 612 792]
CropBox [0 0 612 792]MediaBox [0 0 612 792]
CropBox [55.08 63.36 556.92 728.64]PDF配列には左下と右上の座標が格納されます。Doruniは余白として入力を受け、既存のCropBoxを読み、setCropBox()で新しい矩形を書き込みます。MediaBoxの変更や墨消しは行いません。
トリミング予定範囲の外側に赤い印を置いた無害なPDFを作成しました。トリミング後は表示から消えましたが、CropBoxをMediaBoxへ戻すと同じ印が再び表示されました。

外側の印が見えています。

外側の印は表示範囲から外れます。

元の印が再び表示されます。
3つのサンプルすべてで、トリミング後もMediaBoxは同じでした。
通常表示では隠れていても、pdftotextは各トリミング済みファイルから外側の合成マーカーを検出しました。
CropBoxを戻すと、3サンプルすべてで1ページ目が元ファイルとのSSIM 1.0になりました。
変更したページ辞書を保存するためのシリアライズ情報が増え、元の内容とリソースも残ったため、各ファイルはわずかに大きくなりました。
| サンプル | 状態 | バイト | MediaBox (pt) | CropBox x, y, 幅×高さ (pt) |
|---|---|---|---|---|
| PDF-TEXT | 元ファイル | 1.3 KB | 612×792 | 0, 0, 612×792 |
| PDF-TEXT | トリミング後 | 1.4 KB | 612×792 | 55.08, 63.36, 501.84×665.28 |
| PDF-TEXT | 復元後 | 1.3 KB | 612×792 | 0, 0, 612×792 |
| PDF-IMAGE | 元ファイル | 48.3 KB | 595.28×841.89 | 0, 0, 595.28×841.89 |
| PDF-IMAGE | トリミング後 | 48.3 KB | 595.28×841.89 | 59.53, 75.77, 476.22×690.35 |
| PDF-IMAGE | 復元後 | 48.3 KB | 595.28×841.89 | 0, 0, 595.28×841.89 |
| PDF-MULTI | 元ファイル | 2.4 KB | 612×792 | 0, 0, 612×792 |
| PDF-MULTI | トリミング後 | 2.5 KB | 612×792 | 48.96, 55.44, 514.08×681.12 |
| PDF-MULTI | 復元後 | 2.4 KB | 612×792 | 0, 0, 612×792 |
検証方法: プロジェクト所有の3つのPDF(文字、埋め込み画像、異なるページサイズ)を、Doruniと同じgetCropBox()/setCropBox()処理でトリミングしました。ボックスはpdfinfo -box、表示はPoppler、文字の残存はpdftotextで確認しました。
ビューアや印刷工程によってページ境界の解釈が異なる場合があります。実際に使う環境で表示を確認してください。
技術者はpdfinfo -box file.pdfを実行し、MediaBoxとCropBoxを比較できます。
復元不可能にする必要がある場合は、検証済みの墨消し処理を使い、最終ファイルを別途確認してください。
Doruniは表示領域を端末内で変更します。ファイルはアップロードされませんが、この処理はトリミングであり、墨消しや圧縮ではありません。