3

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

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

编辑:其他不错的选择似乎是使用 iFilters。与这些库相比,它们的性能(速度/质量)如何(Foxit/Adobe)?

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

从我读过的内容来看, pdftotextPDFBox 快得多。与 pdftotext 相比,iTextSharp 的性能如何?或者也许有人可以推荐其他好的解决方案?

4

3 回答 3

3

如果是针对私人项目,这是否会进行持续的转换过程?例如,在您转换了 15-20Gb 之后,您还会继续转换吗?

我问的原因是因为我正在尝试确定速度是否是您的主要问题。例如,如果是我,转换图书馆的图书,我主要关心的是转换的质量,而不是速度。如有必要,我总是可以在晚上/周末离开转换!

于 2010-07-22T10:40:48.967 回答
1

Foxit PDF IFilter 桌面版是免费的

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

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

Foxit 代码是我公司的PDF 阅读器/文本提取库的核心,它不适合您的项目,但我可以保证底层 Foxit 引擎结果的速度和质量。

于 2010-07-22T12:59:30.143 回答
0

我想使用任何库都可以,但是您想在搜索时搜索所有这些 20Gb 文件吗?

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

您的数据库可以简单如下..

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

并且您可以在需要时搜索此表,这样您的搜索将非常快,不受 pdf 类型的影响,而且仅当将 pdf 添加到您的收藏或修改时才需要从 pdf 到数据库的转换。

于 2010-07-22T10:55:35.560 回答