OmniPage Capture SDK 20 – .NET Objects Beispiel 1  C#

Capture SDK Programmbeispiele Dieses erste Beispiel für die .NET Objects Schnittstelle zeigt, wie das OmniPage Capture SDK initialisiert wird und wie eine Bilddatei in eine durchsuchbare PDF-Datei konvertiert werden kann. Um das Programm zu compilieren, legen Sie ein C#-Projekt an und fügen Sie als Referenzen aus dem Bin-Verzeichnis des SDK die Dateien Nuance.OmniPage.CSDK.ArgTypes.dll und Nuance.OmniPage.CSDK.Objects.dll ein.

Im ersten Abschnitt des Programms wird der Bin-Pfad des Capture SDK bestimmt, der für die Initialisierung benötigt wird. Der zu diesem Zweck abgefragte Registry-Schlüssel ist nur auf dem Entwickler-PC vorhanden, auf dem das SDK installiert wurde. Für eine "echte" Anwendung müssen Sie später mit Hilfe des Distribution Wizards die zur Ausführung benötigten Programmdateien des SDK in ein Unterverzeichnis der Anwendung kopieren und den Pfadnamen dieses Unterverzeichnisses an Engine.Init übergeben.

Im zweiten Abschnitt werden die Erkennungssprache und das Ausgabeformat eingestellt. Es ist zulässig, mehr als eine Sprache zu aktivieren, im Interesse der Erkennungsgenauigkeit sollte man aber nur so wenige Sprachen wie nötig zulassen. Eine Liste aller Ausgabeformate erhalten Sie mit der statischen Methode OutputFormats.Formats.

Im dritten Abschnitt erfolgen die eigentliche Texterkennung und PDF-Ausgabe. Die Seiten der Bilddatei werden dabei von der statischen Methode SettingCollection.ProcessPages unter Zuhilfenahme aller Prozessorkerne parallel ausgewertet. Die erzeugte PDF-Datei im Format "PDF Image on Text" ist auf den ersten Blick identisch mit dem Original, enthält aber eine verborgene Textebene mit dem erkannten Textinhalt. Das PDF-Dokument ist somit durchsuchbar und der Text kann markiert und kopiert werden.


using System;
using System.IO;
using Microsoft.Win32;
using Nuance.OmniPage.CSDK.ArgTypes;
using Nuance.OmniPage.CSDK.Objects;

namespace Nuance.OmniPage.CSDK.Samples
  {
  class Program
    {
    static void Main(string[] args)
      {
      // SDK-Verzeichnis bestimmen (Registry-Key nur auf Entwickler-PC vorhanden!)
      string regKey = @"HKEY_LOCAL_MACHINE\Software\Nuance\CSDK20";
      string csdkPath = (string) Registry.GetValue(regKey, "BinPath", "");
      // Bilddatei als Quelle (1. Kommandozeilenparameter oder SAMPLE42_G.tif aus Bin-Pfad)
      string inputFileName = (args.Length>=1) ? args[0] : Path.Combine(csdkPath, "SAMPLE42_G.tif");
      // Dokumentdatei als Ziel (2. Kommandozeilenparameter oder Bilddateiname mit .pdf-Endung)
      string outputFileName = (args.Length>=2) ? args[1] : Path.ChangeExtension(inputFileName, "pdf");
      try
        {
        // Capture SDK initialisieren
        Engine.Init("Nuance", "OP_CSDK_Sample", true, csdkPath);

        // Einstellungen vornehmen
        SettingCollection settings = new SettingCollection();
        settings.Languages.Manage(MANAGE_LANG.SET_LANG, LANGUAGES.LANG_GER); // Sprachen: nur Deutsch
        settings.OutputFormats.Current = "Converters.Text.PDFImageOnText";   // Format: PDF Image on Text

        // Erkennung durchführen
        File.Delete(outputFileName);                          // Vorhandene Ausgabedatei löschen
        string[] imageFiles = new string[] { inputFileName }; // Eine oder mehrere Bilddateien als Quelle
        settings.ProcessPages(outputFileName, imageFiles);    // Bilddateien in Ausgabedatei konvertieren
        }
      catch (Exception)
        {
        }
      }
    }
  }
	

Zu Beispiel 2      Übersicht Programmierschnittstellen