2011-10-28 2 views
0

Adob​​e Acrobat 9では、正規表現を適用してPDFのテキストや一連のPDFのインデックスを検索するにはどうすればよいですか?Adob​​e Acrobat 9では、JavaScriptコンソールで正規表現を使用してPDFのテキストを検索するにはどうすればよいですか?

私が検索する必要があるキーワードは200種類ありますが、各インデックスで手動で行うことができますが、多くのインデックス/ pdfに対してこれを数回実行しなければならず、可能。

search.query("the","ActiveDoc"); 

そして、正規表現を使用すると、コンソールに書いた文字列と対話したことは次のとおりです。

それは、単語「」のために言ってJavaScriptコンソールからのPDFのテキストを検索するために十分に簡単です問題はないのいずれか:

var string="I hope this works9867" 
var regex=/\d/ 

if (regex.test(string)) 
    {app.alert("win",2) 
    } 

しかし、私は正規表現は、PDFのOCR-EDのテキストに適用するので、これまでに行う方法には何のガイドを発見した取得することはできません。それはどちらか

var regex=/\d/ 

search.query(regex,"ActiveDoc"); 

または

search.query(/\d/,"ActiveDoc"); 

にいくつかの近いバリアントがうまくいくことを論理的に見えたが、ないサイコロ。これを行う方法はありますか?理想的には、この方法はインデックスとpdfの両方で同様に機能します。

答えて

1

search.queryで正規表現を使用することはできません。 検索を簡単にするには2つの方法があります。

方法1:検索するすべてのものを配列に入れて、search.queryに渡します。

myArray = "検索したいもの";
search.query(myArray、 "ActiveDoc");

また、あなたはこのような何か実行して検索する方法に変更できます。

search.wordMatching =「BooleanQueryを」。
search.matchWholeWord = false;
myArray = "Word1またはWord2またはWord3";
search.query(myArray、 "Folder"、 "/ c/myDocuments");

search.queryの設定方法の詳細については、Adobe Javascript API Referenceを参照してください。

方法2:PDFドキュメントからテキストを抽出し、その文字列に対して正規表現検索を実行します。
次のコードは、ドキュメント全体をループし、各ページの単語の文字列を作成し、その文字列の中で「Hello」を検索します。

for (var i = 0; i < this.numPages; i++) { // Loop through the entire document 
    numWords = this.getPageNumWords(i); // Find out how many words are on the page 
    var WordString = ""; // Prepare a string 
    for (var j = 0; j < numWords; j++) // Put all the words on the page into a string 
    { 
     WordString = WordString + " " + this.getPageNthWord(i, j); 
    } 
    if (WordString.match(/Hello/)) { // Search for the word "Hello" in the string 
     search.matchWholeWord = true; // If we got here, we'll search for "Hello" in the document 
     search.query(WordString.match(/Hello/), "ActiveDoc"); 
    } 
} 
+0

ありがとう、これは非常に有用で完全な答えでした。非常に感謝しています。方法1の2番目の提案された解決策が正しく機能するようにはできませんでした。ブール構文を使用するのではなく、文字通り "Word1 OR Word2 OR Word3"を検索するように見えます。しかし、方法2は神からのものでした。 – RSid

+0

助けになるのはうれしいです。また、私は、アクティブなドキュメントを検索するときBooleanQueryオプションは無視されていることを忘れてしまったので、あなたがBoolQueryを行いたい場合は、「ActiveDoc」と「フォルダ」または「インデックス」に変更し、検索したいフォルダまたはインデックスを指定する必要があります補正のため。 –

+0

おかげで、今で素晴らしい作品。 Btw、インデックス、フォルダ、バッチシーケンスなどでも#2を適応させることは可能ですか? – RSid

関連する問題