2010-08-17 21 views
14

Ich habe Fujitsu fi-6130 TWAIN/ISIS-Scanner, die ich von einer Schaltfläche in einer jQuery Rails-Webseite auslösen möchte. Ich möchte nicht nur, dass die Seite dem Scanner sagt, dass er "gehen" soll, ich möchte auch die resultierende Datei über Paperclip hochladen, sobald die (einzelne) Seite gescannt wurde - idealerweise ohne dass der Benutzer durch ein Datei-Explorer-Widget navigieren muss finde die Datei manuell.Wie kann ich einen Scanner aus einem Browser auslösen?

Bei jedem Scanner handelt es sich um einen USB-Stick, der an einen Windows XP-Desktop angeschlossen ist. Wir können diese Callcenter-Desktops jedoch durch Google Chrome OS ersetzen.

Diese Frage wurde vor fast einem Jahr gefragt, vor allem aber erhielt Vorschläge die Verwendung von kommerziellen IE .NET Produkte erfordern, die mehrere hundert Dollar kosten - Interfacing with the end-user's scanner from a webapp (web/scanner integration)

+2

Es ist nicht wirklich möglich, einen Browser mit einem Scanner-Schnittstelle (verdammt). Lassen Sie den Benutzer das Bild selbst scannen und hochladen. – tcooc

+0

Eine Möglichkeit, mit einem Scanner in einem Browser zu kommunizieren, ist die ActiveX-Steuerung (IE) oder das Browser-Plugin (Firefox, Chrome). Soweit ich weiß, gibt es kein solches Open-Source-SDK. besser, mehrere hundert Dollar auszugeben, als bei Null anzufangen. Twain ist das beliebteste Protokoll für Scanner-Treiber, und es ist schwer zu knacken – flysakura

+0

[scanner.js] (http://asprise.com/document-scan-upload-image-browser/direct-to-server-php-asp. Mit net-overview.html können Sie Scanner von Browsern unter Windows oder Mac OS aufrufen. Es ist auch ein kommerzielles Paket. –

Antwort

13

Dies ist nicht möglich, direkt aus einer Standard-HTML/js page - js hat keine Zugriffsrechte für Peripheriegeräte wie Scanner.

Es kann durchaus möglich sein, entweder mit Flash oder Silverlight zu arbeiten, aber Sie vermuten, dass Sie Probleme mit Berechtigungen haben. Es gibt Artikel here und here, aber es kann a) zu kompliziert und b) nicht ganz, was Sie wollen.

Wenn Sie die Maschinen das Web-App steuern läuft auf, würde ich empfehlen, einen einfachen Desktop-Client mit Hilfe der Scan durchzuführen und ermöglichten Verbindungen, um es von innerhalb der Web-Seite durch einen lokalen Port eröffnen

so js hat einen AJAX-Aufruf zu (sagen wir) http://localhost:1234/Services/Scan die

bearbeiten Sie ein Bild zurück: Im Hinblick auf den Desktop-Client zu schreiben, haben Sie eine Reihe von Optionen. Ich würde persönlich empfehlen, dass Sie nicht versuchen, dies in PERL/PHP zu tun, da sie nicht das richtige Werkzeug für den Job zu sein scheinen und ich vermute, dass Sie COM-Objekte laden werden, um auf TWAIN-Geräte zuzugreifen (und wir alle wissen, wie viel Spaß das ist ...)

In den Kommentaren haben Sie angegeben, dass Sie Visual Studio nicht mögen - also, wenn Sie mit Java vertraut sind, würde ich vorschlagen, dass Sie einen Blick auf JTwain (kommerziell scheint aber gute Qualität zu sein) oder lesen Sie here. NB: Ich bin kein häufiger Java-Entwickler, daher kann ich nicht garantieren, dass eines der oben genannten Dinge genau das ist, was Sie brauchen.

Darüber hinaus würde ich C++ vorschlagen, eine andere IDE (obwohl dies nicht OS-agnostisch sein würde)

+0

Das Programm, das konfiguriert wird, um eine Teilmenge der Scanner-API als Web-Service zu verwenden, wurde wahrscheinlich mehr als ein paar Mal geschrieben ... Tatsächlich bin ich überrascht, dass die Scanner-Hersteller keine für die gängigen Desktops liefern. Ich wette, ein erheblicher Teil der Kunden für High-End-Scanner will es. Kennt jemand eines von der Stange? –

+0

Ich weiß nicht, aber jetzt bin ich versucht, einen zu schreiben :) – Basic

+0

Ich kontaktierte Fujitsu per E-Mail, Chat und Telefon. Sie haben kein solches Dienstprogramm für jedes Desktop-Betriebssystem, obwohl ich sichergestellt habe, dass sie meine Anfrage notiert haben und vorgeschlagen haben, dass sie direkt auf diese Stackoverflow-Frage antworten. Ich würde lieber eine Scanner-zu-hören-Socket-Relais in einer mir bekannten Sprache schreiben, aber Ruby und Python müssen separat unter Windows installiert werden. C++ Programme müssen in diesem verdammten Visual Studio erstellt werden. Eine native Windows-Skriptsprache wäre aus der Sicht eines Call-Center-Supports besser, aber ich kenne keine. Und dann würde der Proxy nur so lange funktionieren, wie wir Windows benutzen. –

1

Sie ein signiertes Applet verwenden können, eine Bibliothek wie MMS Computing verwenden. Sie können es in einem Applet in der Codebasis von OpenKM verwenden.

11

Es gibt eine Lösung namens Dynamic Web TWAIN from Dynamsoft, die ein Browser-basiertes TWAIN-SDK zum Erfassen von Bildern von TWAIN-Geräten sowie zum Bearbeiten und Speichern dieser Bilder in entfernten Datenbanken bereitstellt.

1

Es scheint, als ob ein Web-API-Toolkit für Fujitsu Scanner der fi-Serie verfügbar ist. Es ist im Grunde eine App, die Sie auf dem Client-Computer installieren, wo der Scanner Anrufe über JSON oder Silverlight akzeptiert und sie an die Scannertreiber sendet.

http://uk.emc.com/enterprise-content-management/captiva/cloud-toolkit.htm

Ich habe es heruntergeladen gerade und Trog lese die Dokumentation, so bürgen kann es nicht funktioniert.

2

Als @Basic erwähnt, JTwain kann verwendet werden, um eine solche Lösung zu erstellen.In der Tat hat der Entwickler von JTwain ScannerJS that allows one to scan directly from browsers like IE, Chrome and Firefox using JavaScript erstellt. Um es in Ihre Web-Seiten zu nutzen, benötigen Sie:

Fügen scanner.js:

<html lang="en"><head> 
<script src="//asprise.azureedge.net/scannerjs/scanner.js" type="text/javascript"></script> 

und rufen scanner.scan:

function scanToWebPageAndUploadToWebServer() { 
    scanner.scan(displayImagesOnPage, 
{ 
"twain_cap_setting": { 
    "ICAP_PIXELTYPE": "TWPT_GRAY", 
    "ICAP_XRESOLUTION": "200", 
    "ICAP_YRESOLUTION": "200" 
}, 
"prompt_scan_more": true, 
"discard_blank_pages": "false", 
"blank_page_threshold": "0.02", 
"output_settings": [ 
    { 
     "type": "return-base64-thumbnail", 
     "format": "jpg", 
     "thumbnail_height": 200 
    }, 
    { 
     "type": "upload", 
     "format": "pdf", 
     "pdf_force_black_white": "false", 
     "pdfa_compliant": "false", 
     "pdf_text_line": "By ${USERNAME} on ${DATETIME}", 
     "exif": { 
      "DocumentName": "Doc Scan Powered by Asprise.com", 
      "UserComment": "Scanned using Asprise software" 
     }, 
     "upload_target": { 
      "url": "https://asprise.com/scan/applet/upload.php?action=dump", 
      "max_retries": 2, 
      "post_fields": { 
       "provider": "Asprise" 
      }, 
      "cookies": "name=Asprise; domain=asprise.com", 
      "auth": "user:pass", 
      "headers": [ 
       "Referer: http://asprise.com" 
      ], 
      "log_file": "null", 
      "max_operation_time": 600 
     } 
    } 
] 
} 

    ); 
    } 
+0

ist scanner.js und die Software ist kostenlos für sehr grundlegende Anwendungen. – nilesh

+0

"In der Tat hat der Entwickler von JTwain geschaffen ..." Irgendein Grund, warum du in der 3. Person über dich sprichst? – Basic

Verwandte Themen