IT-Girl Geschrieben 15. Mai 2002 Geschrieben 15. Mai 2002 Hi, ich soll als Projekt in meinem Praktikumsbetrieb ein Modul mit Delphi programmieren, das aus einem Image mittels der OCR-Software Fine-Reader eine Stichwortliste erstellt. Wie spreche ich nun mit Delphi (oder C++) die Engine des FineReader an? Deren Hilfe bezieht sich fast ausschließlich auf VB und ist nicht sehr hilfreich. Wäre für Tipps sehr dankbar. Zitieren
MarcG Geschrieben 15. Mai 2002 Geschrieben 15. Mai 2002 Kenne den FineReader nicht, aber es wird sich da ja wohl um DLLs handeln, also sind die Namen dieselben wie die, die in VB verwendet werden. Ausserdem sollten die eine Dokumentation der Funktionen in den DLLs liefern können. Der Rest ist einfache Delphiprogrammierung. DLLs benutzt du da am einfachsten indem du sie mit in die Exe Compilierst (statisch einbinden). sowas wie Procedure FineRead(IrgendEinArgument: IrgendEinTyp): IrgendEineRückgabe; External FineReader.DLL (das sollte jetzt stimmen, bin zu faul nachzusehen;) ) Eleganter machst du das dynamisch, das weiss ich aber nciht auswendig, aber die Hilfe hilft auch hier Zitieren
IT-Girl Geschrieben 16. Mai 2002 Autor Geschrieben 16. Mai 2002 Merci für die Tipps. Aber wahrscheinlich werde ich sie nicht brauchen können. Habe mittlerweile ein Testprogramm mit Delphi programmiert, das den FineReader aufruft, mit diesem ein Dokument öffnet und es liest. Aber nun stellt sich das Haupt-Problem: Wie speichere ich dieses eingelesene Dokument als Textdatei ab? :confused: Die Hilfe von FineReader ist nicht besonders hilfreich. Hier der bisherige Code:interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, FineForm_tlb, FineNormal_tlb; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { Private-Deklarationen } fr: FineReaderApplication; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin fr:= CoFineReaderApplication.Create; fr.Visible:= true; fr.OpenBatch('e:\PROJEKTE\Demo\demoBW.tif'); fr.BatchDocument.ReadAll; end; procedure TForm1.FormShow(Sender: TObject); begin close; end; end. Vielleicht weiß ja jemand, wie ich nun weiter vorgehen kann. Wäre suuuuuper!! Zitieren
MarcG Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 Ich würde es so probieren ... mplementation {$R *.DFM} procedure TForm1.FormShow(Sender: TObject); { Da ReadAll ja offensichtlich nicht asynchron läuft sollte es auch so funktionieren... was mir gerade einfällt, es könnte so zu einem störenden Anzeigen des Formulars kommen das leere Formular wird kurz angezeigt. Es ist eigentlich aber besser im OnCreate nur die Dinge zu machen, die da wurklich rein müssen, also später schon zu spät sind, da es wenn auch nur in ganz seltenen Fällen zu Problemen kommen kann} begin fr:= CoFineReaderApplication.Create; fr.Visible:= rue; fr.OpenBatch('e:\PROJEKTE\Demo\demoBW.tif'); fr.BatchDocument.ReadAll; fr.Save(FileName) //Müsste doch sowas geben ? close; end; end. Zitieren
IT-Girl Geschrieben 16. Mai 2002 Autor Geschrieben 16. Mai 2002 Danke für den Hilfeversuch, aber leider gibt es die Funktion fr.Save nicht. Ist scheinbar von FineReader in dieser Art nicht vorgesehen. Mein Ausbilder will mir nachher nochmal was dazu erklären. Vielleicht komme ich ja dann weiter. Auf jeden Fall nochmals Danke für den Tipp. Gruß It-Girl :WD Zitieren
MarcG Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 Wenn es keine Save-Methode gibt, dann hat die Komponente sicher eine Property mit der du den erkannten Text ansprechen kannst, als TStrings würde ich mal vermuten. Zitieren
IT-Girl Geschrieben 17. Mai 2002 Autor Geschrieben 17. Mai 2002 Werde mal sehen, wie und was sich da noch so machen läßt. Heute morgen bekomme ich erstmal noch etwas Unterricht in Sachen Schnittstellen usw. Vielleicht kann mir ja mein Ausbilder auch noch ein wenig weiterhelfen. Danke für Deine Versuche, mir weiterzuhelfen. Hoffe, ich finde bald eine Lösung. Falls Dir oder jemand anderem noch etwas einfallen sollte, kann man ja hier noch antworten. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.