Hallo,
seit einigen Tagen plagt mich wieder der Umgang mit der Twain-Schnittstelle zum Scannen von Dokumenten in XProfan.
Es gibt ja seit diversen Jahren die EZTW32.DLL, die mit XProfan ausgeliefert wird oder zumindest über Rolands Homepage herunterladbar ist.
Damit kann man aber immer nur genau eine Seite pro Aufruf des Scanner-Interfaces scannen. Das ist für heutige Zwecke natürlich ziemlich unbrauchbar.
Der heutige Inhaber der Rechte an diesem Code hat einen Nachfolger parat, der auch mehrere Seite auf einmal scannen kann.
Nur leider kostet das inzwischen ein bisschen Kleingeld. Nämlich exakt 999 US-Dollar (sic!!!). Das ist für eine DLL, die etwas nachbaut, was sich jeder versierte Programmierer mit der offiziellen Twain-Schnittstelle auch selbst herstellen kann, schon wirklich maximal sportlich.
Allerdings ist dieses selber-Herstellen gar nicht so einfach, wie sich herausgestellt hat. Ich scheitere schon beim ersten Triplet, um den Data Source Manager zu initialisieren. Keine Ahnung, warum. Auf die Pascal-Funktionsaufrufkonvention habe ich achtgegeben. Das ist alles Zeugs aus der direkten Twain-Programmierung, die eigentlich gut kommentiert ist - mit XProfan, FreeBasic und PureBasic habe ich es aber nicht hinbekommen, was ich schon ziemlich eigenartig finde. Da muss irgendwo bei mir ein grober Fehler liegen. Ist aber Gott sei Dank auch egal.
Es gibt nämlich eine völlig kostenlose open source-Alternative, die man nur kaum findet, wenn man nach Schlagworten wie "Twain" und "programming interface" sucht. Irgendwann bin ich aber heute zum Glück doch darüber gestolpert.
Die DLL heißt DTwain.dll, und die lässt wirklich absolut keine Wünsche offen. Scannen in aufeinanderfolgende BMP- oder JPG-Dateien (diverse weitere Formate stehen zur Verfügung), scannen in ein einziges mehrseitiges TIFF, scannen in eine PDF-Datei - um nur ein paar Dinge zu nennen. Der Code steht unter der Apache 2.0-Lizenz und dürfte damit als maximal frei gelten.
Das ganze gibt es hier: https://www.dynarithmic.com/details_dtwain.html
Ich habe ein simples XProfan-Beispielprogramm geschrieben, das das Scannen in mehrere JPG-Dateien oder in ein einziges mehrseitiges TIFF demonstriert. Mit nur ganz wenigen Zeilen Code (79 mit Kommentaren und Kram), verglichen mit dem, was man bekommt. Ich habe auch eine dtwain.ph-Datei geschrieben, die alle Konstanten enthält, die man braucht. Auch die Hilfedatei ist beigefügt. Kurzum: Es sind alle essentiellen Dateien dabei (inklusive der DLL).
Beispielprogramm (knapp 4MB, daher hier nicht hochladbar):
http://www.kanzlei-reumschuessel.de/DTwain-Beispiel.zip
Ich hoffe, Ihr seid genauso begeistert wir ich. So eine DLL habe ich seit Jahrzehnten gesucht! Und dann ist das auch noch völlig kostenlos. Keine tausend Dollar. Puh. Irgendwer konnte es offenbar besser als ich mit dem Zugriff auf twaindsm.dll. Schwein gehabt!
Beste Grüße, Jens-Arne