最快的PDF-> .NET项目的文本库

时间:2010-07-22 10:29:13

标签: c# pdf itextsharp pdfbox xpdf

我正在尝试创建一个基本上是我的PDF集合目录的应用程序。我们谈论的是15-20GB,包含数以万计的PDF。我还计划包括一个全文搜索机制。我将使用Lucene.NET进行搜索(实际上是NHibernate.Search),以及用于PDF->文本转换的库。哪个是最好的选择?我在考虑这些:

  • PDFBox的
  • pdftotext(来自xpdf)通过c#wrapper
  • iTextSharp的

编辑:其他不错的选择似乎是使用iFilters。与这些库相比,它们(Foxit / Adob​​e)的表现(速度/质量)有多好?

商业图书馆可能是不可能的,因为这是我的私人项目,我并没有真正的商业解决方案预算 - 尽管PDFTextStream看起来非常好。

从我read pdftotext 很多比PDFBox更快。与pdftotext相比,iTextSharp的表现如何?或者也许有人可以推荐其他好的解决方案?

3 个答案:

答案 0 :(得分:3)

如果是私有项目,是否会进行持续的转换过程?例如。在你转换15-20Gb之后,你还会继续转换吗?

我问的原因是因为我想弄清楚速度是否是你的主要问题。如果是我,例如,转换书籍库,我主要关心的是转换的质量,而不是速度。如果有必要,我总是可以在夜间/周末离开转换!

答案 1 :(得分:1)

Foxit的PDF IFilter桌面版是免费的

http://www.foxitsoftware.com/pdf/ifilter/

它会自动进行索引和搜索,但也许它们的索引可供您使用。如果您打算在销售或分发的应用程序中使用它,那么我想这不是一个好的选择,但如果只是为了您自己,那么它可能会有用。

Foxit代码是我公司PDF Reader/Text Extraction library的核心,这不适合您的项目,但我可以保证底层Foxit引擎的结果的速度和质量。

答案 2 :(得分:0)

我想使用任何库都没问题,但你想在搜索时搜索所有这些20Gb文件吗?

对于全文搜索,最好是在客户端计算机上创建数据库,例如sqlite或任何本地数据库,读取所有pdf并将它们转换为纯文本,并在首先添加时将其存储在数据库中。

您的数据库可以简单地跟随......

Table: PDFFiles
PDFFileID
PDFFilePath
PDFTitle
PDFAuthor
PDFKeywords
PDFFullText....

并且您可以在需要时搜索此表,这样您的搜索将非常快速地独立于pdf的类型,并且只有在将pdf添加到您的集合或修改时才需要从pdf到数据库的转换。