在C#winform中搜索PDF

在C#winform中搜索PDF,c#,winforms,pdf,solr,ghostscript,C#,Winforms,Pdf,Solr,Ghostscript,我需要在VisualStudio2010中使用C#创建一个winform,它在目录中搜索pdf文件,然后在pdf中搜索某些文本。例如,用户可以在winform中输入“John Smith”。该程序需要在给定目录中搜索所有PDF文件中的文本“John Smith”。我目前没有Adobe Acrobat,可能无法购买它或任何非免费加载项。我被告知要查看ApacheSolr和Ghostscript,但不知道如何在winform中使用它们。我已经搜索了很多,看到了很多建议,但是找不到任何关于如何设置wi

我需要在VisualStudio2010中使用C#创建一个winform,它在目录中搜索pdf文件,然后在pdf中搜索某些文本。例如,用户可以在winform中输入“John Smith”。该程序需要在给定目录中搜索所有PDF文件中的文本“John Smith”。我目前没有Adobe Acrobat,可能无法购买它或任何非免费加载项。我被告知要查看ApacheSolr和Ghostscript,但不知道如何在winform中使用它们。我已经搜索了很多,看到了很多建议,但是找不到任何关于如何设置winform来搜索PDF的简单示例或教程。有人能给我提供一些关于如何在winform中搜索PDF的示例代码吗?

要在PDF中搜索认证文本,您可以使用位于

下面是一个简单的例子

var reader = new PdfReader(pdfPath); 
StringWriter output = new StringWriter();  

for (int i = 1; i <= reader.NumberOfPages; i++) 
    output.WriteLine(PdfTextExtractor.GetTextFromPage(reader, i, new SimpleTextExtractionStrategy()));

//now you can search for the text from outPut.ToString();
var读取器=新的PdfReader(pdfPath);
StringWriter输出=新建StringWriter();

对于(int i=1;i要在PDF中搜索认证文本,您可以使用位于

下面是一个简单的例子

var reader = new PdfReader(pdfPath); 
StringWriter output = new StringWriter();  

for (int i = 1; i <= reader.NumberOfPages; i++) 
    output.WriteLine(PdfTextExtractor.GetTextFromPage(reader, i, new SimpleTextExtractionStrategy()));

//now you can search for the text from outPut.ToString();
var读取器=新的PdfReader(pdfPath);
StringWriter输出=新建StringWriter();

对于(int i=1;我下载了solr和ghostscript,但不知道如何在我的visual studio项目中设置或使用它们。我下载了solr和ghostscript,但不知道如何在我的visual studio项目中设置或使用它们。谢谢。知道如何对ghostscript执行相同的操作吗?还有,我需要包括哪些内容才能使用它们itextsharp(例如将using#itextsharp放在顶部或将.dll复制到某个文件夹)?Ghostscript是在Windows上以DLL的形式构建的,因为它是作为源代码提供的,所以显然可以重建为静态库或其他组件。我对Winform一无所知,但我不明白为什么这会是一个不可逾越的障碍。可以使用“txtwrite”设备提取文本。我想说,GS对于您的应用程序来说可能是一把沉重的重锤目的,如果您只想处理PDF文件,您可能喜欢考虑MuPDF。我使用测试脚本将PDF转换成PS文件,这是可行的。我试着将它更改为文本文件(使用TXTWRITE)。,但输出文件是空的。即使这些文件有效,我仍然不知道如何从C#中搜索新的ps或文本文件。有人能告诉我如何执行此操作吗?以下是我尝试过的不起作用的代码(生成一个空的txt文件):WiBit.Net.WGhostScript gs=new WiBit.Net.WGhostScript();gs.AddParam(“-q”);gs.AddParam(“-dNOPAUSE”);gs.AddParam(“-dBATCH”);gs.AddParam(“-dQUIET”);gs.AddParam(“-sDEVICE=txtwite”);gs.AddParam(“-dLanguageLevel=“+psLanguageLevel.ToString());gs.AddParam(“-dSetPageSize”);gs.AddParam(“-soutput文件=“+psFilePath);gs.AddParam(pdfFilePath);gs.Execute();看起来iTextSharp是唯一的答案。谢谢!谢谢。你知道如何使用Ghostscript做同样的事情吗?另外,使用iTextSharp需要包括哪些内容(例如将using#iTextSharp放在顶部或将.dll复制到某个文件夹中)?Ghostscript是在Windows上以DLL的形式构建的,因为它是作为源代码提供的,所以显然可以重建为静态库或其他组件。我对Winform一无所知,但我不明白为什么这会是一个不可逾越的障碍。可以使用“txtwrite”设备提取文本。我想说,GS对于您的应用程序来说可能是一把沉重的重锤目的,如果您只想处理PDF文件,您可能喜欢考虑MuPDF。我使用测试脚本将PDF转换成PS文件,这是可行的。我试着将它更改为文本文件(使用TXTWRITE)。,但输出文件是空的。即使这些文件有效,我仍然不知道如何从C#中搜索新的ps或文本文件。有人能告诉我如何执行此操作吗?以下是我尝试过的不起作用的代码(生成一个空的txt文件):WiBit.Net.WGhostScript gs=new WiBit.Net.WGhostScript();gs.AddParam(“-q”);gs.AddParam(“-dNOPAUSE“;gs.AddParam(“-dBATCH”);gs.AddParam(“-dQUIET”);gs.AddParam(“-sDEVICE=txtwite”);gs.AddParam(“-dLanguageLevel=“+psLanguageLevel.ToString());gs.AddParam(“-dSetPageSize”);gs.AddParam(“-soutfile=“+psFilePath);gs.AddParam(pdfFilePath);gs.Execute();看起来iTextSharp是唯一的答案。谢谢!