如何将.doc翻译成字符串

本文关键字:字符串 翻译 doc | 更新日期: 2023-09-27 18:19:30

有没有一种方法可以在不使用Microsoft COM组件的情况下将Microsoft word文档转换为字符串?我希望有其他方法来处理所有的超额加价。

编辑12/13/13:我们不想引用com组件,因为如果客户没有安装完全相同版本的office,它就无法工作。幸运的是,微软已经使2013年的word.interop.dll向后兼容。现在我们不必担心这个限制。一旦引用dll,我们可以执行以下操作:

/// <summary>Gets the content of the word document</summary>
/// <param name="filePath">The path to the word document file</param>
/// <returns>The content of the document</returns>
public string ExtractText(string filePath)
{
    if (string.IsNullOrEmpty(filePath))
        throw new ArgumentNullException("filePath", "Input file path not specified.");
    if (!File.Exists(filePath))
        throw new FileNotFoundException("Input file not found at specified path.", "filepath");
    var resultText = string.Empty;
    Application wordApp = null;
    try
    {
        wordApp = new Application();
        var doc = wordApp.Documents.Open(filePath, Type.Missing, true);
        if (doc != null)
        {
            if (doc.Content != null && !string.IsNullOrEmpty(doc.Content.Text))
              resultText = doc.Content.Text.Normalize();
            doc.Close();
        }
    }
    finally
    {
        if (wordApp != null)
            wordApp.Quit(false, Type.Missing, false);
    }
    return resultText;
}

如何将.doc翻译成字符串

您需要使用一些库来实现您想要的:

  • MS提供OpenXML SDK V 2.0(免费,仅限DOCX)
  • Aspose.Words(商业、DOC和DOCX)

如果你手头有很多时间,那么编写.DOC解析器可能是可行的——.DOC规范可以在这里找到。

BTW:在类似服务器的场景(如ASP.NET或Windows Service或类似场景)中,MS不支持Office Interop-请参阅http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2!

假设您想要提取文档文件的文本内容,那么有一些命令行工具以及商业库。我们曾经用来搜索doc(而不是docx)文件(与搜索引擎sphider结合使用)的一个相当古老的工具是catdoc(也在这里),它是一个DOS工具,而不是Windows工具,但只要我们满足先决条件(文件名格式8.3),它就对我们有效。

如果你能负担得起29美元的话,一个商业产品文档2文本。

对于较新的docx格式,可以使用基于Perl的工具docx2txt。

当然,如果你想从c#运行这些工具,你需要触发一个外部进程——请在这里查看可靠的解释。

Spire.doc是一个相当昂贵但功能非常强大的访问doc和docx内容的工具,但它的功能远远超出了您的需要。它是一个.NET库,使用起来更方便。

如果您指的是旧的DOC文件格式,那么这是一个很大的问题,因为它是MS指定的二进制文件格式,我必须说我完全同意RQDQ的评论。

但是,如果您引用的是DOCX文件格式,那么您可以在没有MSCOM组件或任何其他组件的情况下实现这一点,只需使用纯.NET.

检查以下解决方案:

http://www.codeproject.com/Articles/20529/Using-DocxToText-to-Extract-Text-from-DOCX-Fileshttp://www.dotnetspark.com/kb/Content.aspx?id=5633