実際、私の要件は、pdfコンテンツを使用してpdfファイルを検索することです。
たくさんの PDF ファイルを含むフォルダーがあります。ユーザーがテキストボックス内で提供されたコンテンツを使用してpdfを検索できるようにするASP.netアプリケーションを開発したいと思います。
このタスクを実行する方法 よろしくお願いします。
タスクは、次のサブタスクに分割できます。
インデックスを作成するには、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);
}