PDFファイル内のテキストを検索する
JPedalは、PDF内のテキストを検索し、検索結果の座標を出力するためのシンプルなクラスを提供しています。
この検索は、シンプルな便利メソッドを使用するか、より詳細な制御を提供する高度なアプローチを使用して行うことができます。
String pdfFile = "inputFile.pdf";
String textToFind = "textToFind";
ArrayList <Float[] > resultsForPages=FindTextInRectangle.findTextOnAllPages(pdfFile, textToFind);
FindTextInRectangle extract = new FindTextInRectangle("inputFile.pdf");
//extract.setPassword("password");
if (extract.openPDFFile()) {
int pageCount = extract.getPageCount();
for (int page = 1; page <= pageCount; page++) {
float[] coords = extract.findTextOnPage(page, "textToFind", SearchType.MUTLI_LINE_RESULTS);
}
}
extract.closePDFfile();
複雑な検索の場合、SearchType を設定できます。有効な値は以下の通りです。
DEFAULT(0)WHOLE_WORDS_ONLY(1)CASE_SENSITIVE(2)FIND_FIRST_OCCURANCE_ONLY(4)MUTLI_LINE_RESULTS(8)HIGHLIGHT_ALL_RESULTS(16)USE_REGULAR_EXPRESSIONS(32)
これらの値は、ビット単位のOR演算子を使用して組み合わせることができます。例えば:
int searchType = SearchType.WHOLE_WORDS_ONLY | SearchType.CASE_SENSITIVE;
例では、PDF座標を使用しています。PDF座標は、ページの左下から始まり、ページの上方向に進みます。これはJavaの座標系(左上から下方向に進む)とは逆になります。
この例では、JPedalのFindTextInRectangle クラスを使用しています。
