【问题标题】:Fastest PDF->text library for .NET project.NET 项目最快的 PDF-> 文本库
【发布时间】:2011-03-19 11:34:59
【问题描述】:

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

  • PDFBox
  • pdftotext(来自 xpdf)通过 c# 包装器
  • iTextSharp

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

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

据我所知,read pdftotext 比 PDFBox 快很多。与 pdftotext 相比,iTextSharp 的性能如何?或者也许有人可以推荐其他好的解决方案?

【问题讨论】:

    标签: c# pdf itextsharp pdfbox xpdf


    【解决方案1】:

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

    我问的原因是因为我想弄清楚速度是否是您的主要问题。例如,如果是我,转换图书馆的图书,我主要关心的是转换的质量,而不是速度。如有必要,我总是可以在晚上/周末结束转换!

    【讨论】:

    • 好的,你是对的。质量是第一位的。但我仍然需要性能,因为稍后我可能会添加批次(数百个)文档。此外,易用性会很好 - 为控制台 prog 编写包装器肯定比仅拥有 C# 库(例如 iTextSharp)更糟糕。
    【解决方案2】:

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

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

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

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

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

    【讨论】:

    • 是的,我打算一次搜索所有集合全文。但是你所说的已经处理好了,我将使用 NHibernate.Search,它将为我在 DB 中创建表并进行全文搜索。我现在需要的是将不同格式的文档(主要是 PDF,也包括 DJVU)转换为纯文本的方法,这样我就可以将其提供给 NHibernate.Search。
    【解决方案3】:

    Foxit PDF IFilter 桌面版免费

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

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

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

    【讨论】:

    • 我很确定 Foxit IFilter 对于桌面使用是免费的。我的观点是,它用于我构建的商业软件中,而且速度快且性能好。
    猜你喜欢
    • 2010-11-16
    • 2010-12-06
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    相关资源
    最近更新 更多