1

実際、私の要件は、pdfコンテンツを使用してpdfファイルを検索することです。

たくさんの PDF ファイルを含むフォルダーがあります。ユーザーがテキストボックス内で提供されたコンテンツを使用してpdfを検索できるようにするASP.netアプリケーションを開発したいと思います。

このタスクを実行する方法 よろしくお願いします。

4

3 に答える 3

1

タスクは、次のサブタスクに分割できます。

  1. すべての PDF ファイルをインデックス化するインデクサーを開発する
  2. 検索が実行されるたびに関連する PDF を見つけるコードを開発します (もちろん、インデックスを使用します)。
  3. 関連する PDF を開くか、何も見つからない場合に警告を表示する機能を開発する

インデックスを作成するには、Apache Lucene やLucene.Netなどの統合ソリューションを使用するか、各 PDF をテキストに変換して、テキストからインデックスを作成します。

インデクサー部分にはDocotic.Pdf ライブラリを試すことができます(免責事項: 私は Bit Miracle で働いています)。

このライブラリを使用して、PDF からテキストを抽出できます。書式設定の有無にかかわらずテキストを抽出できます。抽出されたテキストは、索引の作成に使用できます。

ライブラリは、PDF から単語のコレクションを境界四角形と共に取得することもできます。これは、ファイル内のテキストの正確な位置を知る必要がある場合に役立ちます。

インデックスを作成したくない場合でも、次のようなコードを使用して Docotic.Pdf を使用して検索を実行できます。

PdfDocument doc = new PdfDocument("file.pdf");
string textToSearch = "some text";
for (int i = 0; i < doc.Pages.Count; i++)
{
    string pageText = doc.Pages[i].GetText();
    int count = 0;
    int lastStartIndex = pageText.IndexOf(textToSearch, 0, StringComparison.CurrentCultureIgnoreCase);
    while (lastStartIndex != -1)
    {
        count++;
        lastStartIndex = pageText.IndexOf(textToSearch, lastStartIndex + 1, StringComparison.CurrentCultureIgnoreCase);
    }

    if (count != 0)
        Console.WriteLine("Page {0}: '{1}' found {2} times", i, textToSearch, count);
}
于 2013-11-07T10:13:08.770 に答える