PDF ページのテキスト領域を塗りつぶす方法(Acrobat 7.0)

Description (説明)

この技術文書は、以下の要件を満たす Acrobat プラグインの実装例について説明するものです。

・テキスト選択領域を黒色の矩形で塗り潰して、テキストを隠す。

このプラグインの用途としては、PDFドキュメントのセキュリティの適用方法として、文書内のテキストの一部を隠して公開する場合等が考えられます。なお、セキュリティの適用範囲については更に検討を要しますので、「Additional Information(追加情報)」を併せて参照してください。



Solutions(解決方法)



PDFEdit APIを用いて、PDFドキュメントのページコンテンツを編集する必要があります。

このプラグインの処理としては、テキスト選択部分を取得して、選択領域について黒の四角形のオブジェクトを作成してページに追加するという手順を採用します。

(1) AVDocGetSelection() メソッドでテキスト選択領域を取得します。

(2) PDTextSelectEnumQuads() メソッドで、テキスト選択領域の個々の文字の表示領域(quad)を列挙します。この時、表示領域(矩形)の座標が取得できます。

(3) PDEPathCreate() メソッドで矩形用のパスデータ(PDEPath)を生成し、PDEPathSetData() メソッドで矩形の図形データ情報を設定します。

(4) PDEContentAddElem() メソッドでPDEPathオブジェクトをページコンテンツに追加して、PDPageSetPDEContent() メソッドでページコンテンツを更新します。

なお、PDEPathオブジェクトの追加では、オブジェクトが最前面に表示されるように追加します。これは、PDFの描画モデルが塗りつぶしを基本としているため、上書きするような動作イメージとなります。以下の図はそれを視覚的に説明するものです。

図1:PDEPathによる塗りつぶし

以下に、この実装例のサンプルプログラムを添付します。



<サンプルプログラムの利用法>

- 開発環境

[OS] Windows XP SP2

[Acrobat] Acrobat 7.0.1

[SDK] Acrobat SDK 7.0 R1

[Developement] Visual C++ .NET 2003

- 利用方法

1. プロジェクトの Debug フォルダにある .api ファイルをAcrobatにインストールします。

2. PDF ページ上で、テキストを選択します。

3. ツールバー「高度な編集」を有効にして表示すると、下図の赤い楕円でマークしたボタンが表示されますので、これを選択クリックします。

4. 下図のように選択したテキスト領域が黒の矩形で覆われます。

図2:プラグインの実行結果



Additional Information(追加情報)

図1のPDEPathによる塗りつぶしの方法から、黒の矩形はテキストを覆い隠しているだけです。従って、下に隠れているテキストは、AcrobatのUI上はまだ選択することができますので、メモ帳などにコピー&ペーストすることができます。

セキュリティ上、このようなテキスト抽出を制限するには、次のような方法が考えられます。

A. セキュリティを併用する方法:

上記のプラグインを実行したPDFドキュメント全体に対して、パスワードセキュリティなどのセキュリティ設定を施し、テキスト抽出を禁止する。

B. テキストを書き換える方法:

選択したテキストについて、矩形データを上書きするのではなく、テキスト文字列自身を全角文字などの '■' で置換する。(これは本プラグインとは全く異なる実装方法となります。)

アドビのロゴ

アカウントにログイン