代码之家  ›  专栏  ›  技术社区  ›  Alon Gubkin

从pdf和word文件中提取文本

  •  8
  • Alon Gubkin  · 技术社区  · 14 年前

    如何从C#中的pdf或word文件(删除粗体、图像和其他富格文本格式媒体)中提取文本?

    6 回复  |  直到 10 年前
        1
  •  7
  •   pbz    14 年前

    您可以使用为索引服务设计/使用的过滤器。它们被设计用来从各种文档中提取纯文本,这对于在文档中搜索非常有用。您可以将它用于Office文件、pdf、HTML等,基本上是任何具有过滤器的文件类型。唯一的缺点是您必须在服务器上安装这些过滤器,因此如果您不能直接访问服务器,这可能是不可能的。有些过滤器是随Windows预装的,但有些过滤器(如PDF)必须自己安装。对于C#实现,请查看本文: Using IFilter in C#

        2
  •  5
  •   Kurt Pfeifle    14 年前

    PDF格式:

    你有多种选择。

    PDF文本:
    下载 XPDF utilities . 在.zip文件中有各种命令行实用程序。一个是 pdftotext(.exe) . 它可以从性能良好的PDF文件中提取所有文本内容。类型 pdftotext -help 了解一些if命令行参数。


    安装 latest version of Ghostscript (8.71节)。Ghostscript是PostScript和PDF解释器。您也可以使用它从PDF中提取文本:

    gswin32c.exe ^
     -q ^
     -sFONTPATH=c:/windows/fonts ^
     -dNODISPLAY ^
     -dSAFER ^
     -dDELAYBIND ^
     -dWRITESYSTEMDICT ^
     -dSIMPLE ^
     -f ps2ascii.ps ^
     -dFirstPage=3 ^
     -dLastPage=7 ^
     input.pdf ^
     -dQUIET 
    

    这将输出包含在第3-7页的文本 input.pdf 向标准输出。您可以通过附加 > /path/to/output.txt 去指挥部。(检查以确保PostScript实用程序 ps2ascii.ps 在你的鬼魂手稿里 lib 子目录。)

    如果你忽略了 -dSIMPLE 参数,文本输出将猜测换行符和单词间距。有关详细信息,请查看 ps2级ascii.ps码 -dCOMPLEX 获取其他文本格式信息。

        3
  •  0
  •   Adnan    14 年前
        4
  •  0
  •   Dmitry Karpezo    14 年前

    使用Word对象模型,这是唯一可靠的方法,因为Word格式是不开放的,并且版本不同。

        5
  •  0
  •   Andrew Cash    14 年前

    你可能想看看PDFBox。这里有一个指向代码项目页面的链接,向您展示了如何在C中使用它以及其他有用的注释。

    http://www.codeproject.com/KB/string/pdf2text.aspx

    至于Word,使用Word对象模型的建议可能是最准确的。

        6
  •  0
  •   Bobrovsky Jesse DeGuire    4 年前

    Docotic.Pdf library 可用于从PDF文件中提取文本。

    extract plain text and text with formatting . 还有,一个 collection of words 或者可以使用库的API检索具有边界矩形的字符。