Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中使用Microsoft Office 2013时出现MODI OCR错误#_C#_Ms Office_Ocr_Modi - Fatal编程技术网

C# 在C中使用Microsoft Office 2013时出现MODI OCR错误#

C# 在C中使用Microsoft Office 2013时出现MODI OCR错误#,c#,ms-office,ocr,modi,C#,Ms Office,Ocr,Modi,我计划在我的项目中使用OCR,并搜索了更多的OCR方法,但我没有找到任何正确的方法。最后我听说了莫迪,我试着这么做。但它有以下错误: 由于以下错误,检索CLSID为{40942A6C-1520-4132-BDF8-BDC1F71F547B}的组件的COM类工厂失败:80040154 我正在使用MicrosoftOffice2013和VisualStudio2012 我使用的代码如下: private void button1_Click(object sender, EventArgs e)

我计划在我的项目中使用OCR,并搜索了更多的OCR方法,但我没有找到任何正确的方法。最后我听说了莫迪,我试着这么做。但它有以下错误:

由于以下错误,检索CLSID为{40942A6C-1520-4132-BDF8-BDC1F71F547B}的组件的COM类工厂失败:80040154

我正在使用
MicrosoftOffice2013
VisualStudio2012

我使用的代码如下:

 private void button1_Click(object sender, EventArgs e)
    {
        CheckFileType(@"E:\\");
    }

    public void CheckFileType(string directoryPath) 
    { 
        IEnumerator files = Directory.GetFiles(directoryPath).GetEnumerator(); 
        while (files.MoveNext()) 
        { 
        //get file extension 
        string fileExtension = Path.GetExtension(Convert.ToString(files.Current));

        //get file name without extenstion 
        string fileName=Convert.ToString(files.Current).Replace(fileExtension,string.Empty);

        //Check for JPG File Format 
        if (fileExtension == ".jpg" || fileExtension == ".JPG") // or // ImageFormat.Jpeg.ToString()
        { 
        try 
        { 
        //OCR Operations ... 
        MODI.Document md = new MODI.Document(); 
        md.Create(Convert.ToString(files.Current)); 
        md.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true); 
        MODI.Image image = (MODI.Image)md.Images[0];
        //create text file with the same Image file name 
        FileStream createFile = new FileStream(fileName + ".txt",FileMode.CreateNew);

        //save the image text in the text file 
        StreamWriter writeFile = new StreamWriter(createFile); 
        writeFile.Write(image.Layout.Text); 
        writeFile.Close(); 
        } 
        catch (Exception) 
        { 
        MessageBox.Show("This Image hasn't a text or has a problem", 
        "OCR Notifications", 
        MessageBoxButtons.OK, MessageBoxIcon.Information); 
        } 
        } 
        } 
    } 
有人能帮我吗?该问题是基于Microsoft Office版本还是我需要进行任何更改?那有更好的OCR dll吗?
谢谢。

我认为要使用MODI,图像必须是.tiff格式或微软专有的.MODI格式。根据您的代码,看起来您正在尝试转换jpg

在VB.NET中查看此链接以获取将TIFF转换为JPEG的示例,反之亦然


我已解决了在以下设置中更改此问题 转到项目属性 ->内置选项卡
->将平台目标更改为x86

谢谢您的回答,但此问题取决于我的visual studio和操作系统的版本。它在VisualStudio2008中运行良好,但在vs2012中我们必须进行一些更改。xpertgun,你能写下我在vs2012中要做的更改吗?我也有同样的问题。