PDFページのトリミングとカット/コピー&ペースト
更新日:
このページの目的
写真など画像の仕上がり領域の周囲を切り落として必要な部分だけを取り出すことをトリミングといいます。ここでは、PDFの表示される領域の一部を取り出す(トリミングする)方法と、PDFの一部を切り取って再利用する方法を考えます。
トリミングとは
写真など画像の仕上がり領域の周囲を切り落として必要な部分だけを取り出すことをトリミングといいます。PDFについても、表示される領域の一部を取り出して使用したいというニーズは多いでしょう。
PDFファイルの内部には1ページ毎に描画データが保存されています。描画キャンバスの範囲となるページ境界としては、次の5つの種類を設定できます。
- PDFを印刷する媒体の物理的な大きさを指定するMediaBox
- 製造時の仕上がりサイズを指定するTrimBox
- 出力媒体上でPDFの内容を表示するCropBox
- TrimBoxの周囲に塗り足し領域を指定するBleedBox
- 制作のための領域指定であるArtBox
PDFのトリミングができるソフトウェアはいろいろあります。そして、PDFのトリミングは一般にCropBoxの設定によって実現します。CropBoxとして設定した範囲の外側の画像は、PDFのデータとしては存在しますが、表示されません。このためトリミングしてもトリミング後のファイルサイズは、トリミング前と変わりません。
PDFのトリミング操作の例
例として、次に『瞬簡PDF 編集』によるPDFのトリミング操作を示します。Acrobatのトリミング操作もほぼ同様です。
(1)トリミングしたいPDFを表示
(2)トリミング範囲を設定
次の青い四角で囲った部分がトリミング範囲です。
(3)トリミング後の表示
トリミング実施すると、トリミング設定範囲だけが画面に表示されます。
(4)アドビAcrobatによるトリミング後PDFの表示
トリミング後のPDFを保存して、Acrobatで表示すると次のようになります。
境界ボックスの値を確認
アンテナハウスの『PDF Tool API』にはPDFの境界ボックスの値を取得する機能があります。この機能を使って、トリミング前とトリミング後のPDFのMediaBoxとCropBoxの値を取得して比較すると次の表の通りです。MediaBoxの値は変化無しで、CropBoxの値のみが変更になっています。
トリミング前のPDF | トリミング後のPDF | ||
---|---|---|---|
CropBox | 左下X座標 | 0 | 220.5 |
左下Y座標 | 0 | 204 | |
右上X座標 | 595.32 | 536.82 | |
右上Y座標 | 841.92 | 555.42 | |
MediaBox | 左下X座標 | 0 | 0 |
左下Y座標 | 0 | 0 | |
右上X座標 | 595.32 | 595.32 | |
右上Y座標 | 841.92 | 841.92 |
こうして、トリミング後のPDF内にもページの描画データはすべてが残っています。PDFをトリミングして消したつもりで配布すると、受信者がCropBoxの値を再設定すると見えてしまうことになるので注意が必要です。
CropBoxの直接操作によるトリミング
『PDF Tool API』では境界ボックスの設定値を直接操作するAPIがあります。このAPIを使えばプログラムからCropBoxを書き換えてPDFのトリミングを行うことができます。詳細の解説やサンプルプログラムは、『PDF CookBook』(第1巻 1.2 ページサイズ、方向および余白)をご参照ください。
トリミング範囲外の削除
では、トリミング範囲の外側のデータを実際に削除して存在しないようにすることはできるのでしょうか? これを考えてみます。簡単な例で示すと、左がCropBoxの設定調整でトリミングする方式、右が外側のデータを削除するトリミングです。
直ぐに分かるように、CropBoxを設定する方式では、トリミング後のPDFでも描画データを書き直す必要はありません。しかし、トリミング領域の外側のデータを削除するならば、トリミング後のPDFを作成するときに、PDFの描画データ自体を書き直す必要があります。
ボーンデジタルのPDFでは表示される画像は線画として記述されているので、複雑な図形の場合、描画パラメータを計算しなおしてPDF内の描画データを出力し直す必要があります。
PDFをイメージ画像としてトリミング
PDF領域の外側のデータを削除するトリミングしたいというニーズは多いでしょう。この場合の一番簡単な実現方式は、PDFを写真のようなイメージ画像に変換した上で、使いたい部分の外側のイメージを、あたかも写真を加工するように切り落とす方式です。
PDFをPNGやJPEGなどのイメージ画像に変換するツールは数えきれないくらい沢山あります。そして、一旦、イメージ画像にしてしまえば、画像加工ツールでトリミングするのは簡単です。
ただし、注意しなければならないことは、イメージ画像にする方式では、加工前には文字や線画はベクトル図形ですが、加工後はイメージになるので拡大すると文字や図形がぼやけてしまうことです。
PDFの一部をベクトル図形としてコピー/カット&ペースト
PDFの一部をイメージ画像ではなくベクトル画像のままコピーまたはカットしてペーストできるツールもあります。Acrobatでは「コンテンツ編集」の「テキストと画像を編集」というモードの状態のとき、テキストや画像範囲を選択してコピー/カットとペーストができます。
『瞬簡PDF 書けまっせ』では、類似の機能としてPDFをベクトル画像として貼り付けた上で、貼り付けたベクトル画像のトリミングができます。
→
『瞬簡PDF 書けまっせ』オンラインマニュアル 画像のトリミング
また、アンテナハウスの『PDF Viewer SDK』ではPDFを表示して、画面上で指定した領域をイメージ画像やSVGで保存できます。
→
PDF Viewer Ctrlの主な機能:PDFページの指定範囲をSVGファイルへ変換