C# 使用MODI时出现OCR错误-Sharepoint 2007

C# 使用MODI时出现OCR错误-Sharepoint 2007,c#,ocr,modi,C#,Ocr,Modi,我的机器已安装Office 2010。 我下载了用于OCR的Sharepoint 2007 MODI。 我正在使用VS2012 我收到以下错误消息: ImageOCR_Modi.exe中发生类型为“System.Runtime.InteropServices.COMException”的未处理异常 以下是一个屏幕截图: 我知道Office2010删除了MODI功能,所以没有微软的支持。所以不能与Office2010一起使用吗 代码: 我已经用主要问题更新了代码。欢迎使用堆栈溢出!我已经编辑了您

我的机器已安装Office 2010。
我下载了用于OCR的Sharepoint 2007 MODI。 我正在使用VS2012

我收到以下错误消息:

ImageOCR_Modi.exe中发生类型为“System.Runtime.InteropServices.COMException”的未处理异常

以下是一个屏幕截图:

我知道Office2010删除了MODI功能,所以没有微软的支持。所以不能与Office2010一起使用吗

代码:


我已经用主要问题更新了代码。欢迎使用堆栈溢出!我已经编辑了您的问题-最值得注意的是,我添加了错误消息。这使得问题描述更加清晰,如果人们搜索这个特定的错误消息,这会有所帮助。考虑捕获异常并将其存储在某个地方。顺便说一下,不要像代码的最后一部分那样“吃”异常;以这种方式让异常消失可能会导致关键调试信息丢失。同时,祝你好运解决这个问题!我已经用主要问题更新了代码。欢迎使用堆栈溢出!我已经编辑了您的问题-最值得注意的是,我添加了错误消息。这使得问题描述更加清晰,如果人们搜索这个特定的错误消息,这会有所帮助。考虑捕获异常并将其存储在某个地方。顺便说一下,不要像代码的最后一部分那样“吃”异常;以这种方式让异常消失可能会导致关键调试信息丢失。同时,祝你好运解决这个问题!
public string CheckFileAndDoOCR(string directoryPath)
{
    string TheTxt = "";
    IEnumerator files = Directory.GetFiles(directoryPath).GetEnumerator();

    while (files.MoveNext())
    {
        // FileInfo
        FileInfo sudhir = new FileInfo(Convert.ToString(files.Current));

        // Check for JPG File Format
        if (sudhir.Extension == ".jpg" || foo.Extension == ".JPG")
        // or // ImageFormat.Jpeg.ToString()
        {
            // Start OCR Procedure
            TheTxt = DoOCRExact(sudhir.FullName);
            // Create TXT file next to ImageFile
            string txtFileName = sudhir.DirectoryName + "\\" + sudhir.Name.Replace(sudhir.Extension, "") + ".txt";
            FileStream createFile = new FileStream(txtFileName, FileMode.OpenOrCreate);
            // Save the text in to TXT file
            StreamWriter writeFile = new StreamWriter(createFile);
            writeFile.Write(TheTxt);
            // Close
            writeFile.Close();
            createFile.Close();
        }

        try
        { foo.Delete(); }
        catch (Exception ex)
        {

        }
    }
    return TheTxt;
}

public string DoOCRExact(string FullPath)
{
    string txt;

    // OCR Operations...
    MODI.Document md = new MODI.Document(); // Create MODI.Document
    md.Create(FullPath); // Fill MODI.Document with my file
    md.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true); // OCR();
    // Image from file
    MODI.Image image = (MODI.Image)md.Images[0];
    txt = image.Layout.Text;
    MODI.Word word = image.Layout.Words[0];
    // Close OCR
    word = null;
    image = null;
    md.Close(false);
    md = null;

    // Finalize
    GC.Collect();
    GC.WaitForPendingFinalizers();

    // Return Text
    return txt;
}