Scanner-Anbindung mit ActiveX-Control

Jetzt möchte ich eine Anwendung, die ich als Freelancer erstellt habe, vorstellen.
Gestelltes Problem
Eine Tochter eines grossen, deutschen Luftfahrtkonzerns brauchte zur Klärung von Sonderfällen bei der Ticketabrechnung eine Anwendung, mit der mehrere Flugtickets mit einem an den PC des Bearbeiters angeschlossenen Scanner aus einer ABAP-Anwendung heraus eingescannt und per FTP in das dortige Image-Archiv übertragen werden können.

Algorithmus
Da es sich um manuelle Einzelscans handelte, kam die TWAIN-Schnittstelle zum Einsatz. Damit die Anwendung aus SAP heraus gesteuert werden konnte, musste sie in Form eines ActiveX-Controls realisiert werden. Der Scanvorgang per TWAIN geschieht normalerweise in zwei Schritten, es wird zunächst ein Preview in niedriger Auflösung gemacht, dann wird vom mitgelieferten, scannerspezifischen TWAIN-GUI (Graphical User Interface) in der gescannten Seite eine Suche nach den zu scannenden Objekten durchgeführt, wobei der Anwender noch eine Korrekturmöglichkeit hat. Erst danach wird dann der finale Scan durchgeführt.
Dieses Verfahren erschien mir aus den folgenden Gründen nicht praktikabel:
a) verschiedene Scanner-Modelle würden unterschiedliche GUIs haben, womit sich eine uneinheitliche Benutzerführung ergäbe
b) durch das doppelte Scannen, zusammen mit der mittendrin notwendigen Benutzerinteraktion würde zuviel Zeit verbraucht werden.
Deshalb entschloss ich mich, jeweils eine DIN A4-Seite komplett einzuscannen und die Tickets in der eingescannten Seite selbst zu lokalisieren. Es wurde ein Kontrasterkennungsalgorithmus implementiert, der eine gescannte Seite auf “Kanten” untersuchte. Die gefundenen Tickets wurden dann dem Anwender dargestellt und mit einer Markierung zur Durchführung eventueller Korrekturen (die aber im Praxisbetrieb selten notwendig sind) versehen. Die Scanzeit für drei Tickets inklusive Bereichssuche liegt mit einem aktuellen HP-Scanner bei vorgewärmter Lampe bei 11 Sekunden.

Screenshot:

(Noch eine Anmerkung zu den etwas blassen Farben. Erstens hat man mir zum Testen einen alten Schrottscanner auf den Schreibtisch gestellt und zweitens werden die extrahierten Images vor dem Speichern selbstredend noch kontrastoptimier

Leave a Reply

Your email address will not be published. Required fields are marked *