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

フレームを表示

IOcrPageCollectionインターフェース








メンバ 
OCRドキュメントのページオブジェクトを表します。
オブジェクトモデル
構文
'Usage
 
Dim instance As IOcrPageCollection
@interface LTOcrPageCollection : NSObject <NSFastEnumeration>
public class OcrPageCollection implements List<OcrPage>
解説

IOcrPageCollectionは、OCRドキュメント(IOcrDocument)に現時点では追加されるページを保持します。IOcrDocumentからIOcrDocument.Pagesまでが、IOcrPageオブジェクトのコレクションを保持します。これらのIOcrPageオブジェクトの各々は、手動で、または、自動ゾーニングを通して追加されるページのためにもそれ(imageはページがロードされるか、追加される時を使いました)とOCRゾーンのグループを作成するのに用いられるラスター画像を格納します。

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

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

IOcrPageCollectionインターフェースは標準的な.NET ICollection`1IList`1IEnumerable`1インターフェースを実装します、そして、それゆえに、OCRドキュメント(ドキュメントがメモリベースであるならば)の様々なページを追加して、削除して、取得して、設定して、終わりまで反復処理するためにこれらのインターフェースのメンバを使うことができます。

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

以下のリストは、メモリベースのドキュメントのIOcrPageCollectionインターフェースの大きな機能性を格納します:

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

以下のメンバだけは、ファイルベースのドキュメントでサポートされます:

LEADTOOLS OCRエンジンは、150 ドット/インチ(DPI)以上のページをサポートします。DPIが150未満のページを追加しようとするとき、このページのデータを認識することができるかもしれません。

サンプル

このサンプルは複数ページをOCRドキュメントへロードして、複数のページPDFファイルにOCR結果を保存します。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms.Ocr
Imports Leadtools.Forms.DocumentWriters
Imports Leadtools.Forms
Imports Leadtools.ImageProcessing.Core

<TestMethod>
Public Sub PageCollectionExamples()
   ' For this example, we need a multi-page TIF file.
   ' Create a muti-page TIF from Ocr1.tif, Ocr2.tif, Ocr3.tif and Ocr4.tif
   Dim tifFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Ocr.tif")
   If File.Exists(tifFileName) Then
      File.Delete(tifFileName)
   End If
   Using codecs As New RasterCodecs()
      For i As Integer = 0 To 3
         Dim pageFileName As String = Path.Combine(LEAD_VARS.ImagesDir, String.Format("Ocr{0}.tif", i + 1))
         Using image As RasterImage = codecs.Load(pageFileName)
            codecs.Save(image, tifFileName, RasterImageFormat.CcittGroup4, 1, 1, 1, _
             -1, CodecsSavePageMode.Append)
         End Using
      Next
   End Using

   Dim pdfFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Ocr.pdf")

   ' Create an instance of the engine
   Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, False)
      ' Start the engine using default parameters
      ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrAdvantageRuntimeDir)

      ' Create an OCR document
      Using ocrDocument As IOcrDocument = ocrEngine.DocumentManager.CreateDocument()
         ' Load all the pages of the multi-page tif file we created into the form
         ocrDocument.Pages.AddPages(tifFileName, 1, -1, Nothing)
         Console.WriteLine("{0} pages added to the document", ocrDocument.Pages.Count)

         ' Auto-zone
         ocrDocument.Pages.AutoZone(Nothing)

         ' Recognize
         ocrDocument.Pages.Recognize(Nothing)

         ' Save
         ocrDocument.Save(pdfFileName, DocumentFormat.Pdf, Nothing)
      End Using

      ' Shutdown the engine
      ' Note: calling Dispose will also automatically shutdown the engine if it has been started
      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.DocumentWriters;
using Leadtools.Forms;
using Leadtools.ImageProcessing.Core;

public void PageCollectionExamples()
{
   // For this example, we need a multi-page TIF file.
   // Create a muti-page TIF from Ocr1.tif, Ocr2.tif, Ocr3.tif and Ocr4.tif
   string tifFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr.tif");
   if (File.Exists(tifFileName))
      File.Delete(tifFileName);
   using (RasterCodecs codecs = new RasterCodecs())
   {
      for (int i = 0; i < 4; i++)
      {
         string pageFileName = Path.Combine(LEAD_VARS.ImagesDir, string.Format("Ocr{0}.tif", i + 1));
         using (RasterImage image = codecs.Load(pageFileName))
            codecs.Save(image, tifFileName, RasterImageFormat.CcittGroup4, 1, 1, 1, -1, CodecsSavePageMode.Append);
      }
   }

   string pdfFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr.pdf");

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

      // Create an OCR document
      using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument())
      {
         // Load all the pages of the multi-page tif file we created into the form
         ocrDocument.Pages.AddPages(tifFileName, 1, -1, null);
         Console.WriteLine("{0} pages added to the document", ocrDocument.Pages.Count);

         // Auto-zone
         ocrDocument.Pages.AutoZone(null);

         // Recognize
         ocrDocument.Pages.Recognize(null);

         // Save
         ocrDocument.Save(pdfFileName, DocumentFormat.Pdf, null);
      }

      // Shutdown the engine
      // Note: calling Dispose will also automatically shutdown the engine if it has been started
      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.DocumentWriters;
using Leadtools.Forms;
using Leadtools.ImageProcessing.Core;

      
public async Task PageCollectionExamples()
{
   // For this example, we need a multi-page TIF file.
   string tifFileName = @"Assets\Ocr1.tif";
   string pdfFileName = "Ocr.pdf";

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

   // Start the engine using default parameters
   ocrEngine.Startup(null, null, String.Empty, Tools.OcrEnginePath);

   // Create an OCR document
   IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument();

   // Load all the pages of the multi-page tif file we created into the form
   using (RasterCodecs codecs = new RasterCodecs())
   {
      StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(tifFileName);
      using (RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile)))
      {
         ocrDocument.Pages.AddPage(image, null);
         Debug.WriteLine("{0} pages added to the document", ocrDocument.Pages.Count);
      }
   }

   // Auto-zone
   ocrDocument.Pages.AutoZone(null);

   // Recognize
   ocrDocument.Pages.Recognize(null);

   // Save
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(pdfFileName, CreationCollisionOption.ReplaceExisting);
   await ocrDocument.SaveAsync(LeadStreamFactory.Create(saveFile), DocumentFormat.Pdf, null);

   // Shutdown the engine
   ocrEngine.Shutdown();
}
必要条件

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

参照

参照

IOcrPageCollectionメンバ
Leadtools.Forms.Ocr名前空間
OcrEngineManagerクラス
OcrEngineType列挙体
IOcrPageインターフェース
LEADTOOLS .NET OCRによるプログラミング
利用可能な画像ファイル形式一連
OCRページの操作

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