OmniPage Capture SDK 20 – RecAPI Beispiel 1   C  C++

Capture SDK Programmbeispiele Dieses erste Beispiel für die RecAPI 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 tragen Sie das Include-Verzeichnis des SDK in die Include-Verzeichnisse des Projekts ein.

Im ersten Abschnitt des Programms müssen Sie den Bin-Pfad des Capture SDK eintragen, der vom gewählten Installationsort abhängt. 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 RecInitPlusS ü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 den Funktionen RecGetFirstOutputFormat und RecGetNextOutputFormat.

Im dritten Abschnitt erfolgen die eigentliche Texterkennung und PDF-Ausgabe. Die Seiten der Bilddatei werden dabei von der Funktion RecProcessPagesEx 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.


#include <Windows.h>
#include <KernelApiS.h>
#include <RecApiPlusS.h>

void main(int argc, char* argv[])
   {
   // SDK-Verzeichnis bestimmen (Bitte an Installation anpassen!)
   #define CSDK_PATH "C:\\Program Files (x86)\\OmniPage Capture SDK 20\\Bin"
   // Bilddatei als Quelle (1. Kommandozeilenparameter oder SAMPLE42_G.tif aus Bin-Pfad)
   PCSTR szInputFileName = (argc>=2) ? argv[1] : CSDK_PATH"\\SAMPLE42_G.tif";
   // Dokumentdatei als Ziel (2. Kommandozeilenparameter oder SAMPLE42_G.pdf in Bin-Pfad)
   PCSTR szOutputFileName = (argc>=3) ? argv[2] : CSDK_PATH"\\SAMPLE42_G.pdf";

   // Capture SDK initialisieren
   RecInitPlusS(CSDK_PATH, "Nuance", "OP_CSDK_Sample");

   // Einstellungen vornehmen
   kRecManageLanguages(0, SET_LANG, LANG_GER);                  // Erkennungssprachen: nur Deutsch
   RecSetOutputFormat(0, "Converters.Text.PDFImageOnText");     // Ausgabeformat: PDF Image on Text

   // Erkennung durchführen
   DeleteFile(szOutputFileName);                                // Vorhandene Ausgabedatei löschen
   PCSTR pszImageFiles[] = { szInputFileName, NULL };           // Eine oder mehrere Bilddateien als Quelle
   RecProcessPagesEx(0, szOutputFileName, pszImageFiles, 0, 0); // Bilddateien in Ausgabedatei konvertieren

   // Programmende
   RecQuitPlusS();                                              // Capture SDK schließen
   }
	

Zu Beispiel 2      Übersicht Programmierschnittstellen