问题
I've been struggling to get MODI to work properly at all today. Here's the code I'm attempting to use (adapted from the VB given at the Wikipedia entry for MODI.
private void button1_Click( object sender, EventArgs e )
{
string inputFile = @"C:\testImage.bmp";
textBox1.Text = GetTextFromImage( inputFile );
}
private string GetTextFromImage( string fileName )
{
string output = "";
var doc1 = new MODI.Document();
doc1.Create( fileName );
doc1.OCR( MiLANGUAGES.miLANG_ENGLISH, false, false );
for ( int i = 0; i < doc1.Images.Count; i++ )
{
output += doc1.Images[i].Layout.Text;
}
doc1.Close();
return output;
}
When I execute this, I get an error on the OCR() line saying the following:
System.Runtime.InteropServices.COMException was unhandledMessage=OCR running error Source="" ErrorCode=-959967087
Now, I looked up that error code and found another stackoverflow question in which they found that they couldn't run the OCR on small images, but the one in question is 1700
x2338
, which should be plenty large enough for the cause.
Does anyone have any advice on where to go next with this?
回答1:
It appears that the MODI failures may be cumulative; however through varying investigation it looks as though it may be tied to the DPI. Modifying the PixelFormat
, clearing the background, adjusting the raw image size, and adjusting the OCROrientImage
and OCRStraightenImage
flags had no effect.
What worked for me was modifying the DPI of the written Bitmap
for both horizontal and vertical to 300. The default for a Bitmap
is 96 and in working with a specific image that did work I noted the DPI was set at 300.
回答2:
I had similar problems and the terribly unhelpful error message seems to be generated when MODI is unable to OCR the bitmap. The solution I came up with is:
1 - Create your bitmap in either of these two formats System.Drawing.Imaging.PixelFormat.Format24bppRgb or System.Drawing.Imaging.PixelFormat.Format16bppRgb555
2 - Clear the background of the bitmap to white and then copy your text "picture" to the middle of it and then do the MODI.Document.Create (......
回答3:
Its not a problem on code. Just update office 2003 service pack 3. Here is the link https://www.microsoft.com/en-us/download/details.aspx?id=8
It will work fine....
回答4:
Change your code to this:
doc1.OCR;
And let the engine decide its own language.
来源:https://stackoverflow.com/questions/6699740/ocr-running-error-when-using-modi-2003-with-c-sharp