2012-07-30 67 views
0

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

+0

我已经下载的Solr和Ghostscript,但不知道如何设置他们或在我的视觉工作室项目中使用它们。 – boilers222 2012-07-30 13:05:28

回答

3

要搜索certian文本PDF你可以在 http://sourceforge.net/projects/itextsharp/

这里使用iTextSharp的图书馆是一个简单的例子

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(); 
+0

谢谢。任何想法如何用Ghostscript做同样的事情?另外,我需要包含什么来使用itextsharp(例如在顶部使用#itextsharp或将.dll复制到某个文件夹)? – boilers222 2012-07-30 13:52:22

+0

Ghostscript是作为Windows上的DLL构建的,因为它作为源提供,显然可以重建为静态库或其他组件。我对Winform一无所知,但我不明白为什么这应该是一个不可逾越的障碍。可以使用'txtwrite'设备提取文本。我想说GS可能是你的目的太多的大锤,如果你只想处理PDF文件,你可能会考虑使用MuPDF。 – KenS 2012-07-31 07:14:24

+0

我使用http://www.wibit.net/blog/integrating_ghostscript_c的测试脚本将PDF转换为可用的ps文件。我尝试将其更改为文本文件(使用txtwrite),但输出文件为空。即使这些工作,我仍然不知道如何从C#中搜索新的PS或文本文件。任何人都可以告诉我如何做到这一点? – boilers222 2012-07-31 13:08:54