Как выполнять последовательное распознавание с помощью MODI (Microsoft Office Document Imaging) в C#

У меня есть документы, отсканированные как изображения .jpg в папке, и я хотел бы последовательно выполнять распознавание символов на C# для каждого из моих документов в этой папке. до сих пор я сделал это:

public string CheckFilesAndDoOCR(string directoryPath)
{
    directoryPath = Environment.SpecialFolder.MyPictures + "\\OCRTempPictures\\";
    IEnumerator files = Directory.GetFiles(directoryPath).GetEnumerator();
    string TheTxt = "";

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

        // Get new file name
        string fileName = AlltoJPG(nfo);

        // FileInfo (New File)
        FileInfo foo = new FileInfo(fileName);

        // Check for JPG File Format
        if (foo.Extension == ".jpg" || foo.Extension == ".JPG")
        // or // ImageFormat.Jpeg.ToString()
        {
            try
            {
                // OCR Operations...
                MODI.Document md = new MODI.Document();
                md.Create(foo.FullName);
                md.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, false, false); // OCR();
                MODI.Image image = (MODI.Image)md.Images[0];
                TheTxt = image.Layout.Text;
                md.Close(false);

                // Create text file with the same Image file name
                FileStream createFile = new FileStream(foo.DirectoryName + "\\" + foo.Name.Replace(foo.Extension,string.Empty) + ".txt", FileMode.CreateNew);

                // Save the image text in the text file
                StreamWriter writeFile = new StreamWriter(createFile);
                writeFile.Write(TheTxt);
                writeFile.Close();
            }
            catch (Exception ex)
            {
                // Expected errors
                string LogPath = System.Environment.SpecialFolder.MyPictures + "\\OCRTempPictures\\OCRInfo.txt";
                Logger(LogPath, "| Exception: Source[" + ex.Source + "] Message[" + ex.Message + "] InnerException[" + ex.InnerException + "] StackTrace[" + ex.StackTrace + "] | ");
                // MessageBox.Show(ex.Message, "OCR Exception", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    }
    return TheTxt;
}

, но MODI запускает OCR! или Не удается получить доступ к файлу. Файл используется. ошибки..

В зависимости от ситуации:

  • Как избежать этих ошибок?

  • Можно ли как-то остановить действие OCR и уничтожить все используемые объекты?

Буду признателен, если кто-нибудь сможет ответить на любой из приведенных выше вопросов.

5
задан Berker Yüceer 18 June 2012 в 14:36
поделиться