10-9 文字列検索

概説:

文字列検索の基礎

文字検索

//入力PDFの取得は「PDFを開く」を参照
PtlParamSearchText paramSearchText = new PtlParamSearchText();  //文字列検索設定用クラス

paramSearchText.appendText(textToSearch1);              //検索したい文字列その1
paramSearchText.appendText(textToSearch2);              //検索したい文字列その2

//文書全体から検索結果の取得
PtlSearchTextResults resultsContainer = doc.searchText(paramSearchText);

ページを指定しての文字列検索も可能です

//ページから検索結果の取得
PtlSearchTextResults resultsContainer = page.searchText(paramSearchText);

検索結果の取得

//入力PDFの取得は「PDFを開く」を参照
//ページコンテナ・ページ取得は「ページ情報を操作する」を参照
//検索結果コンテナresultsContainerの取得は「文字検索」を参照
//インデックス番号を指定して個別の検索結果を取得
PtlSearchTextResult searchResult = resultsContainer.get(resultNum);
searchResult.getPageNumber();   //ページ番号の取得
searchResult.getKeyword();      //キーワードの取得

検索結果の詳細座標取得

//入力PDFの取得は「PDFを開く」を参照
//ページコンテナ・ページ取得は「ページ情報を操作する」を参照
//検索結果コンテナresultsContainerの取得は「文字検索」を参照
//検索結果searchResultの取得は「検索結果の取得」を参照

//検索結果の詳細コンテナ
PtlSearchTextResultDetails resultDetails = searchResult.getResultDetails();
//検索結果詳細の個別内容を取得
PtlSearchTextResultDetail resultDetail = resultDetails.get(detailNum);
PtlQuadPoint quadPoint = resultDetail.getQuadPoint();   //個別の詳細結果のQuadPointを取得

文字列検索の細かいオプション

検索用パラメータPtlParamSearchTextは細かいオプションが設定可能である。

大文字・小文字を判別した上での文字列検索

paramSearchText.setCompareCase(compareCase);    //大文字・小文字を区別するか否かを指定

ActuralTextの無視を指定した文字列検索

paramSearchText.setIgnoreActualText(ignoreActualText);  //ActualTextを無視するか否かを指定

座標順にテキスト取得する文字列検索

//座標順にテキストを指定して検索
paramSearchText.setTextType(PtlParamSearchText.TEXT_TYPE.TEXT_SORT);

座標順にテキストを取得する場合、どの程度ずれた行まで同一行とみなすかを指定可能

//どの程度ずれた行まで同一行とみなすかを指定
paramSearchText.setOverlapAsLine(overlapRate);

文字列検索をした部分に墨消しをして削除する

ドキュメント全体に検索・墨消しをかける場合

//入力PDFの取得は「PDFを開く」を参照
//検索するテキストやマスク処理のパラメータ
PtlParamSearchTextAndSetMask paramSearchTextSetMask = new PtlParamSearchTextAndSetMask();
PtlColorDeviceRGB color = new PtlColorDeviceRGB(red, green, blue);

paramSearchTextSetMask.setColor(color);             //マスクの色
paramSearchTextSetMask.setOpacity(opacity);         //マスクの不透明度
paramSearchTextSetMask.appendText(textToSearch1);   //検索する文字列その1
paramSearchTextSetMask.appendText(textToSearch2);   //検索する文字列その2

//ドキュメント全体を検索し、ヒットした部分をマスクする
doc.searchTextAndDoProcess(paramSearchTextSetMask);

関数searchTextAndDoProcess()はページオブジェクトに対して指定することも可能です。

//ページを検索し、ヒットした部分をマスクする
page.searchTextAndDoProcess(paramSearchTextSetMask);

墨消し機能の詳細は「墨消し機能(データの削除)」の項を参照してください。

文字列検索をしてハイライト注釈を付与する

「注釈」の項の「文字列検索してハイライト注釈を付ける」を参照してください。

参考:

・文字列検索の基礎

『PDF CookBook(第3巻)1.2.1 キーワードの指定による検索』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0004.html

・文字列検索の細かいオプション

『PDF CookBook(第3巻)1.2.2 検索オプションの指定:検索対象文字列のオプション』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0005.html

『PDF CookBook(第3巻)1.2.3 検索オプションの指定:取得順序』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0006.html

『PDF CookBook(第3巻)1.2.4 検索オプションの指定:同一行とみなす文字の重なり』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0006.html

・文字列検索をした部分に墨消しをして削除する

『PDF CookBook(第3巻)3.3.1 テキスト検索とマスク処理の組み合わせ』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0039.html

・文字列検索をしてハイライト注釈をかける

『PDF CookBook(第4巻)1.1.9 テキスト検索してハイライト注釈』

https://www.antenna.co.jp/ptl/cookbook/vol4/i02-0012.html

Please enter alt text.