Vai al contenuto principale
Questo oggetto è implementato in FRE per Linux e Windows.
Si tratta di un oggetto processore che converte le immagini di input in pagine riconosciute (oggetti FRPage). Quando il processore viene inizializzato, i processi di riconoscimento asincrono vengono avviati e configurati. Il processore quindi preleva i file immagine da una sorgente di immagini personalizzata. Per ogni pagina del file immagine viene creato un nuovo task di elaborazione, che viene assegnato a uno dei processi di riconoscimento. Se tutti i task di un file sono stati inviati per l’elaborazione, ma non tutti i processi di riconoscimento sono occupati, viene prelevato il file immagine successivo dalla coda di immagini della sorgente e inviato per l’elaborazione. Questa operazione continua finché la prima pagina immagine non viene convertita e restituita all’utente. Le pagine vengono restituite all’utente nell’ordine in cui sono state prelevate dalla sorgente di immagini. Per organizzare l’elaborazione con il Batch Processor, procedi come segue:
  1. Implementa le interfacce IImageSource e IFileAdapter, che forniscono l’accesso alla sorgente di immagini e ai file in essa contenuti.
  2. [facoltativo] Implementa l’interfaccia IAsyncProcessingCallback per gestire l’elaborazione. I metodi di questa interfaccia consentono di gestire gli errori e/o annullare l’elaborazione.
  3. Chiama il metodo CreateBatchProcessor dell’oggetto Engine per ottenere l’oggetto BatchProcessor.
  4. Usa la proprietà PageFlushingPolicy per impostare la modalità di gestione in memoria delle pagine del documento.
  5. Chiama il metodo Start per inizializzare il processore e avviare i processi di riconoscimento asincrono. In questo metodo puoi specificare la sorgente delle immagini e le impostazioni di elaborazione.
  • L’oggetto BatchProcessor non può essere riutilizzato. Chiamate ripetute al metodo Start causano errori.
  • Non creare né utilizzare contemporaneamente più Batch Processor, poiché ciò potrebbe causare confusione nell’elaborazione delle pagine.
  1. Chiama il metodo GetNextProcessedPage in un ciclo finché il metodo non restituisce 0, il che significa che non ci sono più immagini nella sorgente e che tutte le immagini elaborate sono già state restituite all’utente.
La pagina restituita dal metodo GetNextProcessedPage rimane disponibile fino alla chiamata successiva di questo metodo. Pertanto, se vuoi salvare questa pagina, devi farlo usando i metodi dell’oggetto FRPage oppure aggiungerla a un documento esistente usando il metodo IFRDocument::AddPage PRIMA della successiva chiamata al metodo GetNextProcessedPage.

Proprietà

NomeTipoDescrizione
ApplicationEngine, di sola letturaRestituisce l’oggetto Engine.
PageFlushingPolicyPageFlushingPolicyEnumSpecifica se gli oggetti ImageDocument e Layout delle pagine corrispondenti debbano essere scaricati e salvati su disco in assenza di riferimenti a tali oggetti. <Note> In Linux, quando il valore di questa proprietà è impostato su PFP_KeepInMemory, gli ImageDocument e i layout delle pagine non utilizzate non vengono salvati su disco. </Note> <Note> In Windows, per scaricare e salvare su disco gli oggetti ImageDocument e Layout di singole pagine del documento, utilizzare il metodo IFRPage::Flush per le pagine corrispondenti. </Note> Per impostazione predefinita, questa proprietà è impostata su PFP_Auto.

Metodi

NomeDescrizione
GetNextProcessedPageEsegue l’elaborazione in background finché non è disponibile l’immagine riconosciuta successiva.
ProcessPageAsyncConsente di ripetere l’elaborazione di una pagina con parametri diversi. La pagina può essere inserita all’inizio o alla fine della coda di elaborazione.
StartPrepara Batch Processor all’uso. Il metodo avvia processi di riconoscimento asincroni e specifica la sorgente di immagini e le impostazioni di elaborazione.

Parametro di output

Questo oggetto è il parametro di output del metodo CreateBatchProcessor dell’oggetto Engine.

Esempi

// Crea il Batch Processor
FREngine.IBatchProcessor batchProcessor = engine.CreateBatchProcessor();
FREngine.IFRDocument document = engine.CreateFRDocument();
// Inizializza il processore
FREngine.IImageSource imageSource = new CImageSource; // la classe è implementata dall'utente
batchProcessor.PageFlushingPolicy = FREngine.PageFlushingPolicyEnum.PFP_KeepInMemory;
batchProcessor.Start( imageSource, null, null, null );
// Avvia l'elaborazione
while( true ) {
 FREngine.IFRPage page = batchProcessor.GetNextProcessedPage();
 if( page == null ) {
  break; // non ci sono altre pagine, l'elaborazione è terminata
 }
 // esegui un'operazione sulla pagina
 ...
 document.AddPage( page );
}
Questo oggetto viene utilizzato nei seguenti esempi di codice: BatchProcessing e negli strumenti demo: BatchProcessingRecognition.

Vedi anche

Elaborazione parallela con ABBYY FineReader Engine IImageSource