LEADTOOLS OCR(Leadtools.Forms.Ocrアセンブリ)

フレームを表示

IOcrDocumentManagerインターフェース








メンバ 
このIOcrEngineのOCRドキュメントを管理します。
オブジェクトモデル
構文
public interface IOcrDocumentManager 
'Declaration
 
Public Interface IOcrDocumentManager 
'Usage
 
Dim instance As IOcrDocumentManager
public interface IOcrDocumentManager 
@interface LTOcrDocumentManager : NSObject
public class OcrDocumentManager
function Leadtools.Forms.Ocr.IOcrDocumentManager() 
public interface class IOcrDocumentManager 
解説

IOcrEngine.DocumentManagerプロパティを通してIOcrEngineにより用いられるIOcrDocumentManagerのインスタンスにアクセスすることができます。

IOcrDocumentManagerインターフェースによって、OCR'edドキュメントをカプセル化するIOcrDocumentオブジェクトを作成することができます。各々のOCRドキュメントは、ドキュメントからページを追加して、削除するために使うことができるIOcrPageのコレクションを格納します。ドキュメントにページを追加して、ページの上で必要に応じてゾーンを管理したあと、認識データを得て、ページで内部的に保存するために各々のページの上でIOcrPage.Recognizeメソッドを呼び出すことができます。一度されたら、その最終形式にドキュメントを保存するIOcrDocumentオブジェクトのセーブメソッドを使うことができます。

LEADTOOLSは、LEADTOOLSドキュメントライタエンジンによってPDF、Microsoft Word、HTMLといくつかの他などのいろいろな基本文書形式に保存することをサポートします。詳細については、「IOcrDocumentとDocumentFormat」を参照してください。

IOcrDocumentManagerは、2つの方向でドキュメントを作成することをサポートします:

メモリベースのドキュメント

このモードでは、OCRページは、保存する前にメモリ内のあるために必要です。これはドキュメントがファイルベースのドキュメントを用いて、または、LEADTOOLS一時ファイル形式を用いて大量のページとどちらも持っている時を推薦されません(DocumentFormat.Ltdは必要とされます。

メモリベースのIOcrDocumentでは、IOcrPageCollectionにページが保持されます。ユーザーはいつでもページの一部または全部を認めることができます、そして、ページは自由に追加または削除されることができます。

OcrCreateDocumentOptions.InMemoryの利用またはIOcrDocumentManager.CreateDocumentまたはIOcrDocumentManager.CreateDocument(string、OcrCreateDocumentOptions)は、そのようなドキュメントを作成するためにフラグを立てます。

IOcrDocument.IsInMemoryは、メモリベースのドキュメントのためにtrueでしょう。

ファイルベースのドキュメント

このモードでは、OCRページは、保存する前にメモリ内のあるために必要でありません。このモードは、ドキュメントが大量のページを持っている時を推薦されます、そして。

ファイルベースのIOcrDocumentに、IOcrPageCollectionはページのストアのみのビューです。ページが追加されるとき、現在の認識データのスナップショットはドキュメントに保存されます。このデータはもはや修正されることができません、そして、ページがもはや必要でありません。ドキュメントに追加される前に、ユーザーはページを認めなければなりません、そして、ページは追加されることができるだけであるが、削除されることができるだけでありません。

ファイルベースのドキュメントは、保存されることもできて、ページを追加するか、あとで最終的なドキュメントに変換し続けるためにリロードされることもできます。詳細な情報と例のために、LEADTOOLS .NET OCRでプログラミングに参照します。

OcrCreateDocumentOptions.InMemoryのない使用IOcrDocumentManager.CreateDocument(string、OcrCreateDocumentOptions)は、そのようなドキュメントを作成するためにフラグを立てます。

IOcrDocument.IsInMemoryは、メモリベースのドキュメントのためのfalseであるでしょう。現在のバックエンドファイル名は、IOcrDocument.FileNameから得られることができます。

IOcrEngineを用いた一般的なOCR操作はエンジンを始動することが必要です、IOcrDocumentManager.CreateDocumentメソッドを使っていて、それにページを追加しているIOcrDocumentオブジェクトを作成して、自動であるか手動のゾーニングを実行します。一度これがされたら、認識データがIOcrPage.Recognizeを用いて集められたあと、PDF、DOCまたはHTMLなどのその最終形式にドキュメントを保存するためにいろいろなIOcrDocument.Saveメソッドを使います。

上記に加えて、XMLとしてドキュメントを保存するために、IOcrDocument.SaveXmlを使うことができます。

サンプル

このサンプルは、LEADTOOLS OCR Advantageエンジンでサポートされるすべての形式に、ページを保存します。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms.Ocr
Imports Leadtools.Forms
Imports Leadtools.Forms.DocumentWriters
Imports Leadtools.WinForms

<TestMethod>
Public Sub OcrDocumentManagerExample()
   Dim tifFileName1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif")
   Dim tifFileName2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Ocr2.tif")
   Dim outputDirectory As String = LEAD_VARS.ImagesDir
   ' Create an instance of the engine
   Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, False)
      ' Start the engine using default parameters
      Console.WriteLine("Starting up the engine...")
      ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrAdvantageRuntimeDir)

      ' Create the OCR document
      Console.WriteLine("Creating the OCR document...")
      Dim ocrDocumentManager As IOcrDocumentManager = ocrEngine.DocumentManager
      Using ocrDocument As IOcrDocument = ocrDocumentManager.CreateDocument()
         ' Add the pages to the document
         Console.WriteLine("Adding the pages...")
         ocrDocument.Pages.AddPage(tifFileName1, Nothing)
         ocrDocument.Pages.AddPage(tifFileName2, Nothing)

         ' Recognize the pages to this document. Note, we did not call AutoZone, it will explicitly be called by Recognize
         Console.WriteLine("Recognizing all the pages...")
         ocrDocument.Pages.Recognize(Nothing)

         ' Save to all the formats supported by this OCR engine
         Dim formats As Array = [Enum].GetValues(GetType(DocumentFormat))
         For Each format As DocumentFormat In formats
            Dim friendlyName As String = DocumentWriter.GetFormatFriendlyName(format)
            Console.WriteLine("Saving (using default options) to {0}...", friendlyName)

            ' Construct the output file name (output_directory + document_format_name + . + extension)
            Dim extension As String = DocumentWriter.GetFormatFileExtension(format)
            Dim outputFileName As String = Path.Combine(outputDirectory, format.ToString() & "." & extension)

            ' Save the document
            ocrDocument.Save(outputFileName, format, Nothing)

            ' If this is the LTD format, convert it to PDF
            If format = DocumentFormat.Ltd Then
               Console.WriteLine("Converting the LTD file to PDF...")
               Dim pdfFileName As String = Path.Combine(outputDirectory, format.ToString() & "_pdf.pdf")

               Dim docWriter As DocumentWriter = ocrEngine.DocumentWriterInstance
               docWriter.Convert(outputFileName, pdfFileName, DocumentFormat.Pdf)
            End If
         Next

         ' Now save to all the engine native formats (if any) supported by the engine
         Dim engineFormats As String() = ocrDocumentManager.GetSupportedEngineFormats()
         For Each engineFormat As String In engineFormats
            Dim friendlyName As String = ocrDocumentManager.GetEngineFormatFriendlyName(engineFormat)
            Console.WriteLine("Saving to engine native format {0}...", friendlyName)

            ' Construct the output file name (output_directory + "engine" + engine_format_name + . + extension)
            Dim extension As String = ocrDocumentManager.GetEngineFormatFileExtension(engineFormat)
            Dim outputFileName As String = Path.Combine(outputDirectory, "engine_" & engineFormat & "." & extension)

            ' To use this format, set it in the IOcrDocumentManager.EngineFormat and do a normal save using DocumentFormat.User

            ' Save the document
            ocrDocumentManager.EngineFormat = engineFormat
            ocrDocument.Save(outputFileName, DocumentFormat.User, Nothing)
         Next
      End Using

      ' Shutdown the engine
      ' Note: calling Dispose will also automatically shutdown the engine if it has been started
      Console.WriteLine("Shutting down...")
      ocrEngine.Shutdown()
   End Using
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
Public Const OcrAdvantageRuntimeDir As String = "C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms.Ocr;
using Leadtools.Forms;
using Leadtools.Forms.DocumentWriters;
using Leadtools.WinForms;

public void OcrDocumentManagerExample()
{
   string tifFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif");
   string tifFileName2 = Path.Combine(LEAD_VARS.ImagesDir, "Ocr2.tif");
   string outputDirectory = Path.Combine(LEAD_VARS.ImagesDir, "OutputDirectory");
   // Create the output directory
   if (Directory.Exists(outputDirectory))
      Directory.Delete(outputDirectory, true);
   Directory.CreateDirectory(outputDirectory);

   // Create an instance of the engine
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false))
   {
      // Start the engine using default parameters
      Console.WriteLine("Starting up the engine...");
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrAdvantageRuntimeDir);

      // Create the OCR document
      Console.WriteLine("Creating the OCR document...");
      IOcrDocumentManager ocrDocumentManager = ocrEngine.DocumentManager;
      using (IOcrDocument ocrDocument = ocrDocumentManager.CreateDocument())
      {
         // Add the pages to the document
         Console.WriteLine("Adding the pages...");
         ocrDocument.Pages.AddPage(tifFileName1, null);
         ocrDocument.Pages.AddPage(tifFileName2, null);

         // Recognize the pages to this document. Note, we did not call AutoZone, it will explicitly be called by Recognize
         Console.WriteLine("Recognizing all the pages...");
         ocrDocument.Pages.Recognize(null);

         // Save to all the formats supported by this OCR engine
         Array formats = Enum.GetValues(typeof(DocumentFormat));
         foreach (DocumentFormat format in formats)
         {
            string friendlyName = DocumentWriter.GetFormatFriendlyName(format);
            Console.WriteLine("Saving (using default options) to {0}...", friendlyName);

            // Construct the output file name (output_directory + document_format_name + . + extension)
            string extension = DocumentWriter.GetFormatFileExtension(format);
            string outputFileName = Path.Combine(outputDirectory, format.ToString() + "." + extension);

            // Save the document
            ocrDocument.Save(outputFileName, format, null);

            // If this is the LTD format, convert it to PDF
            if (format == DocumentFormat.Ltd)
            {
               Console.WriteLine("Converting the LTD file to PDF...");
               string pdfFileName = Path.Combine(outputDirectory, format.ToString() + "_pdf.pdf");

               DocumentWriter docWriter = ocrEngine.DocumentWriterInstance;
               docWriter.Convert(outputFileName, pdfFileName, DocumentFormat.Pdf);
            }
         }

         // Now save to all the engine native formats (if any) supported by the engine
         string[] engineFormats = ocrDocumentManager.GetSupportedEngineFormats();
         foreach (string engineFormat in engineFormats)
         {
            string friendlyName = ocrDocumentManager.GetEngineFormatFriendlyName(engineFormat);
            Console.WriteLine("Saving to engine native format {0}...", friendlyName);

            // Construct the output file name (output_directory + "engine" + engine_format_name + . + extension)
            string extension = ocrDocumentManager.GetEngineFormatFileExtension(engineFormat);
            string outputFileName = Path.Combine(outputDirectory, "engine_" + engineFormat + "." + extension);

            // To use this format, set it in the IOcrDocumentManager.EngineFormat and do a normal save using DocumentFormat.User

            // Save the document
            ocrDocumentManager.EngineFormat = engineFormat;
            ocrDocument.Save(outputFileName, DocumentFormat.User, null);
         }
      }

      // Shutdown the engine
      // Note: calling Dispose will also automatically shutdown the engine if it has been started
      Console.WriteLine("Shutting down...");
      ocrEngine.Shutdown();
   }
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
public const string OcrAdvantageRuntimeDir = @"C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime";
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms.Ocr;
using Leadtools.Forms;
using Leadtools.Forms.DocumentWriters;

      
public async Task OcrDocumentManagerExample()
{
   string tifFileName1 = @"Assets\Ocr1.tif";
   string tifFileName2 = @"Assets\Ocr2.tif";
   string[] sourceFiles = 
   {
      tifFileName1,
      tifFileName2
   };

   // Create an instance of the engine
   IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false);

   // Start the engine using default parameters
   Debug.WriteLine("Starting up the engine...");
   ocrEngine.Startup(null, null, String.Empty, Tools.OcrEnginePath);

   // Create the OCR document
   Debug.WriteLine("Creating the OCR document...");
   IOcrDocumentManager ocrDocumentManager = ocrEngine.DocumentManager;
   IOcrDocument ocrDocument = ocrDocumentManager.CreateDocument();

   // Add the pages to the document
   Debug.WriteLine("Adding the pages...");

   using (RasterCodecs codecs = new RasterCodecs())
   {
      foreach (string fileName in sourceFiles)
      {
         StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(fileName);
         using (RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile)))
         {
            ocrDocument.Pages.AddPage(image, null);
         }
      }
   }

   // Recognize the pages to this document. Note, we did not call AutoZone, it will explicitly be called by Recognize
   Debug.WriteLine("Recognizing all the pages...");
   ocrDocument.Pages.Recognize(null);

   // Save to all the formats supported by this OCR engine
   DocumentFormat[] supportedFormats = DocumentWriter.GetSupportedFormats();
   foreach (DocumentFormat format in supportedFormats)
   {
      string friendlyName = DocumentWriter.GetFormatFriendlyName(format);
      Debug.WriteLine("Saving (using default options) to {0}...", friendlyName);

      // Construct the output file name (output_directory + document_format_name + . + extension)
      string extension = DocumentWriter.GetFormatFileExtension(format);
      string outputFileName = format.ToString() + "." + extension;

      // Save the document
      StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(outputFileName, CreationCollisionOption.ReplaceExisting);
      await ocrDocument.SaveAsync(LeadStreamFactory.Create(saveFile), format, null);

      // If this is the LTD format, convert it to PDF
      if (format == DocumentFormat.Ltd)
      {
         Debug.WriteLine("Converting the LTD file to PDF...");
         string pdfFileName = Path.Combine(Tools.AppLocalFolder.Path, format.ToString() + "_pdf.pdf");

         DocumentWriter docWriter = ocrEngine.DocumentWriterInstance;
         docWriter.Convert(outputFileName, pdfFileName, DocumentFormat.Pdf);
      }
   }

   // Shutdown the engine
   Debug.WriteLine("Shutting down...");
   ocrEngine.Shutdown();
}
必要条件

ターゲットプラットホーム

参照

参照

IOcrDocumentManagerメンバ
Leadtools.Forms.Ocr名前空間
Leadtools.Forms.DocumentWriters.DocumentFormat
IOcrDocumentインターフェース
IOcrDocument.Save
IOcrDocument.SaveXml
IOcrPage.Recognize
IOcrEngineインターフェース
OcrEngineManagerクラス
OcrEngineType列挙体
LEADTOOLS .NET OCRによるプログラミング
アプリケーションに含まれるファイル
OCRページを認めること

Leadtools.Forms.Ocrは、認識またはDocument Imaging Suiteのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能