Frage

Betrachten Sie das folgende Verfahren zum Scannen in eine typische Dokumentenmanagement webapp:

  • Scannt der Benutzer ein Dokument mit einem scanner angeschlossen, um seine/Ihre computer
  • Das gescannte Bild gespeichert wird lokal auf dem Rechner des Nutzers als BMP/JPG/TIF/PNG-Datei
  • Der Benutzer trifft eine Datei hochladen "Durchsuchen.." - Schaltfläche in der web-Anwendung
  • Der Benutzer ein Datei-dialog, die er/Sie verwendet, um suchen Sie das gescannte Bild
  • Der Benutzer zuvor auf "Bild Hochladen" und das gescannte Bild wird auf den server hochgeladen und dort gespeichert

Dieser Prozess ist ziemlich kompliziert und ich würde wie zu reduzieren die Anzahl der Schritte, um zu machen die Prozess mehr Benutzer-freundliche/Narr Beweis.Unter idealen Umständen die zuvor genannten Schritte würde ersetzt werden mit nur einem Schritt, in dem das Verfahren einleiten, das Scannen von Dokumenten, komplette Dokument Scannen und hochladen resultierende Bild wird automatisch ausgelöst, aus der webapp, wenn Sie klicken, sagen Sie "Scannen und hochladen".Unfortunely, wie es scheint, der Zustand des "web - /scanner-integration" ist ziemlich schlecht, so könnte dies eine Utopie.

Wie würden Sie dieses problem angehen?Genauer gesagt, wie würden Sie gehen über die Reduzierung der Anzahl Schritte beinhalten, die in der use-case beschrieben?

War es hilfreich?

Lösung

Wenn Sie Ihre Zielgruppe mit Windows und IE, und es Ihnen nichts ausmacht, ein paar $$ verbringen, Atalasoft hat einige Komponenten, die nur tun, was Sie suchen.

Andere Tipps

Nun, zwei Jahre vergangen sind, so ist hier ein Update auf dem neuesten Stand der Technik für die, uns nur verbinden.

Sowohl Dynamsoft und Atalasoft Web-Scan-Toolkits Multi-Browser haben, die mit einer beliebigen serverseitigen Stapel kompatibel sind. Beide erfordern die Benutzer ein ActiveX zu installieren (in IE) oder eine NPAPI-Plugin (Chrome, Firefox, etc.) Zugriff auf die Scanner über das TWAIN-API zu erhalten.

Natürlich, wenn Sie die Zeit oder ein begrenztes Budget haben, können Sie Ihr eigenes Plugin erstellen. Ich empfehle wärmstens das firebreath Plugin-Framework und jeder TWAIN-Bibliothek, anstatt das Schreiben Ihrer eigenen TWAIN Code.

Nachdem das ActiveX oder Plugin installiert ist, ist der Rest der Arbeit eine Kombination von JavaScript und HTML auf dem Client, und eine Art von Handler auf dem Server zu übernehmen und das eingehende Bild zu verarbeiten, was gemacht werden kann, nur um zu sehen wie eine mehrteiliger Form mit einer angehängten Datei einzureichen.

Ich empfehle das Hochladen von Bildern in Javascript tut AJAX verwenden, weil sie Teil der gleichen Browsers Session ", wie die Web-Seite ist dann, und es erbt die Einstellungen des Proxy-Browser, Session-Cookies und serverseitige Authentifizierung. Ich weiß nicht, über Dynamsoft Kontrolle, das Atalasoft Toolkit solche AJAX-Upload enthält. Das Bild (n) aus dem Plugin zum Javascript als Base64-codierte Zeichenfolge übergeben, so dass keine lokale Datei tatsächlich erstellt.

Disclaimer: Ich arbeite auf Atalasoft des WingScan Web-Scan-Toolkit

.

Ich sah tatsächlich jemand in der Bank dies tun, während mein Konto einrichten und ich war total begeistert. Bank in Frage wurde mit Windows und IE, ich nehme an, Ihre in einer ebenso kontrollierten Umgebung. Ich denke, dass die Bank eine Kombination aus einem custom / vorhersagbaren Scanner-Treiber verwendet, und ein ActiveX-Steuerelement.

geladen Eine Seite, die sagte: „Öffnen Sie den Scanner“ der Bedienstete das Dokument in ein und drücken Scan auf der Webseite aufgetaucht, dann die Seite zu sagen, Scannen geändert, dann zeigte er das gescannte Dokument auf der Webseite für die Mitarbeiter zu Genehmigen. Ich kann nur annehmen, dass der Scannertreiber das Bild zu einem bestimmten Ort und dem aktiven X-Steuerelement senden Polling wurde er angezeigt werden, sobald sie erschien es auf dem Bildschirm das Bild zeigte, sobald die Mitarbeiter es die aktiven x es hochgeladen genehmigt hatte der Hintergrund. Sie öffnete die nächste Seite und führte mit dem Rest des Prozesses.

Gott weiß, wie sie alle, dass Tech-Arbeit gemacht, aber es kann getan werden.

Silverlight 4 wird in Kürze aus. Es soll die Möglichkeit haben, mit COM-Objekten auf dem Computer des Benutzers interagieren (vorausgesetzt, dass sie Windows ausgeführt wird). Theoretisch rufen Sie WIA Methoden von Silverlight-Webseite.

Wir implementierten eine Lösung Remote-Kaution für eine Bank zu implementieren. Es funktioniert nur im Internet Explorer. Ein winforms dll wurde erstellt, dass Schnittstellen mit Leadtools TWAIN dll. Leadtools TWAIN dll abstrahiert die alle TWAIN minutae. Dieser Ansatz ist slighly besser als ein ActiveX-Steuerelement verwenden. .NET Framework würde auf Client benötigt. Die gescannten Bilder werden wieder in eine verborgene Variable auf der Seite veröffentlicht und werden auf dem Server verarbeitet werden.

Hmm, ich habe immer in einer gescannten Datei suchen wollte, bevor ich mit ihm tat nichts, aber ich nehme an, dass Sie den Scanner hängt und wie viel Qualität, die Sie benötigen.

Wenn das Ziel, „die das Scannen und Upload-Prozess zu automatisieren“ ist im Gegensatz zu „einem Web-App schreiben“, würde ich einen AutoIt-Skript schreiben, die vorhandene Scanner-Software und ein einfaches FTP-Programm zu steuern.

Die Option am ehesten die meisten Schritte zu entfernen, würde wahrscheinlich ein individuelles Scan-Dienstprogramm schreiben, die der Benutzer herunterladen möchte und auf ihrem lokalen Rechner ausgeführt werden.

SANE oder TWAIN würde behandelt das gescannte Bild zu bekommen. cURL könnte als handhabt das Bild auf Ihren Web-App hochladen. Um die Sache noch für den Endbenutzer einfacher, ich so etwas wie eine Comet-Verbindung verwenden würde die Webseite zu aktualisieren, wenn die Datei vorhanden ist.

Wenn das nicht möglich ist, kann man sich in zu sehen, welche Möglichkeiten Ihre Nutzer wahrscheinlich ihre Scanner-Software haben. Ich glaube, dass jetzt viele Programme Scannen E-Mail oder FTP-Unterstützung.

Die Lösung, die ich für ein Intranet App verwendet habe, Multifunktions-Scanner / Kopierer wurde zu einer SMB-Freigabe scannen, die der Web-Server Zugriff auf hatte. Der Benutzer geht nur an den Kopierer-Scans auf die Freigabe, und wenn sie wieder an ihren Schreibtisch bekommen, gehen sie auf die neue Scans Seite, die eine Liste aller neuen nicht verarbeiteten Dateien zeigt.

Seit Ihr Publikum kontrollierten Umgebung, Sie können schreiben Sie Ihre eigene browser-Erweiterung/das Programm basiert auf WIA/TWAIN, der die Scannen.Wenn Sie browser-Erweiterungen wie BHO/ActiveX/XPCOM, etc, die Sie benötigen, Holen Sie die Erlaubnis des Benutzers installieren Sie Ihre Erweiterung.Wenn Sie wählen ein Programm zu schreiben, müssen Sie möglicherweise die Bereitstellung im web-Technologien wie ClickOnce-oder Java Web Start gestartet werden, die von web.

Schnittstellen TWAIN ist ein Schmerz auf Windows.Komplexität beiseite, Sie haben etwas zeigen GUI geschrieben, die von verschiedenen scanner-Treiber-Entwickler.Es kann die einzige Möglichkeit sein, Unterstützung von alten Scanner oder Funktionen, die nicht ausgesetzt sind, die über andere Schnittstellen wie full-speed-mehrseitige scans aus dem Vorlageneinzug.

Microsoft WIA-Oberfläche macht die Verknüpfung mit scanner viel einfacher, mit einem scripting-Objektmodell, allerdings scanner-spezifische Funktionen nicht zur Verfügung und einige alte Scanner, tun nicht Unterstützung die interface.

Nach dem Scannen können Sie einen web-service zu informieren, den server und die Webseite aktualisieren kann, regelmäßig zu überprüfen, neue Bilder.

Wir haben etwas ähnliches getan. wir verwenden, um eine Befehlszeile TWAIN-Programm ( http://www.burrotech.com/quickscan.php). $$ $ 49

1) Wir haben eine kleine NetcAnwendung das Quick Programm als Shell-Befehl auszuführen.
2) Der Befehl wurde auf die Scan-Taste zugeordnet.
3) Sobald der Benutzer drückt auf der Scan-Taste, eine Aufforderung erscheint, um die Dateinamen einzugeben. Der Anwender spart die Transaktions-ID als Dateinamen.
4) Eine weitere NetcAnwendung (oder vielleicht das gleiche schon erwähnt) wird diese Datei lesen und in die Datenbank laden man bedenkt, dass der Dateiname ist die Transaktions-ID.

Arbeitete wie ein warmes Messer in Butter!


Sie können versuchen, die Transaktions-ID in IE, Benutzer die Anzeige der ID auszuwählen drückt dann auf Scannen. Ihre Bewerbung wird den markierten Text lesen und speichern Sie die Datei in dem markierten Text als Dateinamen verwenden. Wir havne't es versucht, aber es sollte funktionieren.

Es ist nur Utopie ist, wenn Sie denken, dass Web-Anwendungen Web-Browser beschränkt sind, in der Tat, Web-Anwendungen viele verschiedene Technologien umfassen, neben HTML und Javascript.

Die kühle Art und Weise, dieses Problem zu lösen - in der Tat, habe ich bereits, dass für einige usbserial Geräte - ist Ihre Anwendung mit SOAP + XMPP zu implementieren. Sie können, dass durch die Verwendung von XML in Perl tun :: CompileX :: Transport :: SOAPXMPP, Katalysator :: Motor :: XMPP2 Catalyst ::-Controller :: SOAP und Catalyst :: Modell :: SOAP.

Das Interessante an XMPP ist, dass es die Verwaltung der Adressierung vereinfacht, da Sie die JID (Jabber-ID) für die Nutzung Software-Agenten zu suchen, nicht einige Host + Port Adressierungsschema. Der zweite interessante Teil XMPP der Verwendung ist, um noch einfacher den Server Support-Informationen an den Client drücken.

Aber wenn Sie nicht wollen, XMPP zu handhaben Sie können immer noch das gleiche tun mit einem leichten integrierten HTTP-Server - HTTP :: Server :: Simple, in Perl - und irgendwie die aktuelle Scanner-Adresse auf dem Server registrieren so kann es zurückrufen.

Und eine letzte Option, die nicht so süß ist, ist den Software-Agent Polling auf den Server zu haben, um zu sehen, wenn es ein „Scan-Dokument und laden“, um für die jeweilige Maschine und dass der Betrieb zu realisieren, wenn diese vorhanden ist.

Insgesamt einen lokalen Software-Agenten mit der lokalen Hardware nicht macht Ihre Webapp zu interagieren, die weniger „web“, so lange wie Sie Web-Standards verwenden - wie XML, SOAP und andere -, dass die Kommunikation durchzuführen.

Sie können ein Java-Applet in Ihrer Website. Dies kann den Scanner zugreifen und die Daten über REST auf Ihren Webserver senden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top