التفاعل مع الماسح الضوئي الخاص بالمستخدم النهائي من خلال تطبيق ويب (تكامل الويب/الماسح الضوئي)

StackOverflow https://stackoverflow.com/questions/1601648

سؤال

خذ بعين الاعتبار إجراء المسح الضوئي التالي في تطبيق ويب نموذجي للتعامل مع المستندات:

  • يقوم المستخدم بمسح مستند ضوئيًا باستخدام ماسح ضوئي متصل بجهاز الكمبيوتر الخاص به
  • يتم حفظ الصورة الممسوحة ضوئيًا محليًا على كمبيوتر المستخدم كملف BMP/JPG/TIF/PNG
  • يقوم المستخدم بالضغط على زر تحميل الملف "تصفح .." في تطبيق الويب
  • يُعرض على المستخدم مربع حوار ملف يستخدمه لتحديد موقع الصورة الممسوحة ضوئيًا
  • يضغط المستخدم على "تحميل صورة" ويتم تحميل الصورة الممسوحة ضوئيًا إلى الخادم حيث تم تخزينها

هذه العملية معقدة للغاية وأريد تقليل عدد الخطوات لجعل العملية أكثر سهولة في الاستخدام/مقاومة للكذب.في ظل الظروف المثالية، سيتم استبدال الخطوات المذكورة أعلاه بخطوة واحدة فقط يبدأ فيها الإجراء مسح المستندات ضوئيًا، ويتم تشغيل المسح الضوئي الكامل للمستندات وتحميل الصورة الناتجة تلقائيًا من تطبيق الويب عند النقر فوق "المسح الضوئي والتحميل".لسوء الحظ، يبدو أن حالة "تكامل الويب/الماسح الضوئي" سيئة للغاية، لذا قد يكون هذا بمثابة المدينة الفاضلة.

كيف يمكنك معالجة هذه المشكلة؟وبشكل أكثر تحديدًا، كيف يمكنك تقليل عدد الخطوات التي تتضمنها حالة الاستخدام الموضحة؟

هل كانت مفيدة؟

المحلول

إذا كان جمهورك المستهدف يستخدم Windows وIE، ولا تمانع في إنفاق بضعة دولارات، أتالاسوفت يحتوي على بعض المكونات التي ستفعل ما تبحث عنه تمامًا.

نصائح أخرى

حسنًا، لقد مر عامان، لذا إليك تحديثًا عن أحدث التطورات لأولئك الذين انضموا إلينا للتو.

كلاهما دينامسوفت و أتالاسوفت لديك مجموعة أدوات لمسح الويب متعددة المستعرضات متوافقة مع أي مكدس من جانب الخادم.يتطلب كلاهما من المستخدم تثبيت ActiveX (في IE) أو مكون إضافي NPAPI (Chrome وFirefox وما إلى ذلك) للوصول إلى الماسح الضوئي عبر TWAIN API.

من الواضح أنه إذا كان لديك الوقت أو الميزانية المحدودة، فيمكنك إنشاء المكون الإضافي الخاص بك.أوصي بحرارة إطار البرنامج المساعد FireBreath, ، و أي مكتبة TWAIN بدلاً من كتابة رمز TWAIN الخاص بك.

بمجرد تثبيت ActiveX أو البرنامج الإضافي، يكون باقي العمل عبارة عن مزيج من جافا سكريبت وHTML على العميل ونوع من المعالج على الخادم لقبول ومعالجة الصورة الواردة، والتي يمكن جعلها تبدو وكأنها متعددة الأجزاء تمامًا إرسال النموذج مع الملف المرفق.

أوصي بتحميل الصورة في جافا سكريبت باستخدام AJAX، لأنها تكون بعد ذلك جزءًا من "جلسة" المتصفح نفسها مثل صفحة الويب، وترث إعدادات الوكيل للمتصفح وملفات تعريف الارتباط للجلسة والمصادقة من جانب الخادم.لا أعرف شيئًا عن تحكم Dynamsoft، حيث تتضمن مجموعة أدوات Atalasoft تحميل AJAX.يتم تسليم الصورة (الصور) من البرنامج المساعد إلى جافا سكريبت كسلسلة مشفرة بـ base64، لذلك لا يتم إنشاء ملف محلي فعليًا.

تنصل:أنا أعمل على مجموعة أدوات مسح الويب WingScan من Atalasoft.

لقد رأيت بالفعل شخصًا ما في البنك يفعل ذلك أثناء إعداد حسابي وقد دهشت تمامًا.كان البنك المعني يستخدم نظامي التشغيل Windows وIE، وأفترض أنك تعمل في بيئة يتم التحكم فيها بشكل متساوٍ.أعتقد أن البنك استخدم مزيجًا من برنامج تشغيل الماسح الضوئي المخصص/الذي يمكن التنبؤ به وعنصر تحكم ActiveX.

تم تحميل صفحة مكتوب عليها "افتح الماسح الضوئي"، حيث قام الموظف بإدخال المستند والضغط على "مسح ضوئي" على صفحة الويب، ثم تغيرت الصفحة إلى "مسح ضوئي"، ثم عرض المستند الممسوح ضوئيًا على صفحة الويب ليوافق عليه الموظف.لا أستطيع إلا أن أفترض أن برنامج تشغيل الماسح الضوئي يرسل الصورة إلى موقع معين وأن عنصر تحكم X النشط كان يقوم باستقصاء ظهورها، وبمجرد ظهورها أظهر الصورة على الشاشة، وبمجرد موافقة الموظف عليها، قام نشط x بتحميلها في الخلفية.فتحت الصفحة التالية وتابعت بقية العملية.

يعلم الله كيف جعلوا كل هذه التكنولوجيا تعمل ولكن يمكن القيام بها.

سيصدر Silverlight 4 قريبًا.من المفترض أن يكون لديه القدرة على التفاعل مع كائنات COM على كمبيوتر المستخدم (شريطة أن يعمل بنظام Windows).من الناحية النظرية، يمكنك استدعاء أساليب WIA من صفحة ويب Silverlight الخاصة بك.

قمنا بتنفيذ حل لتنفيذ الإيداع عن بعد لأحد البنوك.إنه يعمل فقط في IE.أ winforms.dll تم إنشاء تلك الواجهات مع LeadTools TWAIN dll.يلخص Leadtools TWAIN dll جميع تفاصيل TWAIN.يعد هذا الأسلوب أفضل قليلاً من استخدام عنصر تحكم ActiveX.ستكون هناك حاجة إلى .NET Framework على العميل.يتم نشر الصور الممسوحة ضوئيًا مرة أخرى إلى متغير مخفي على الصفحة وتتم معالجتها على الخادم.

حسنًا، كنت أرغب دائمًا في إلقاء نظرة على الملف الممسوح ضوئيًا قبل أن أفعل أي شيء به، لكنني أفترض أن ذلك يعتمد على الماسح الضوئي الخاص بك ومقدار الجودة التي تحتاجها.

إذا كان الهدف هو "أتمتة عملية المسح والتحميل" بدلاً من "كتابة تطبيق ويب"، فسأكتب برنامج نصي AutoIt للتحكم في برنامج الماسح الضوئي الحالي وبرنامج بروتوكول نقل الملفات البسيط.

من المحتمل أن يكون الخيار الأكثر احتمالاً لإزالة معظم الخطوات هو كتابة أداة فحص مخصصة يمكن للمستخدم تنزيلها وتشغيلها على جهازه المحلي.

سيتعامل SANE أو TWAIN مع الحصول على الصورة الممسوحة ضوئيًا.يمكن لـ cURL التعامل مع تحميل الصورة إلى تطبيق الويب الخاص بك.لتسهيل الأمور على المستخدم النهائي، سأستخدم شيئًا مثل اتصال Comet لتحديث صفحة الويب عندما يكون الملف متاحًا.

إذا لم يكن هذا خيارًا، فقد تفكر في معرفة الخيارات التي من المحتمل أن تكون متاحة للمستخدمين لديك باستخدام برامج الماسحات الضوئية الخاصة بهم.أعتقد أن العديد من البرامج تدعم الآن المسح الضوئي إلى البريد الإلكتروني أو بروتوكول نقل الملفات.

كان الحل الذي استخدمته لتطبيق إنترانت، باستخدام الماسح الضوئي/آلات النسخ متعددة الوظائف، هو إجراء المسح الضوئي إلى مشاركة SMB التي يمكن لخادم الويب الوصول إليها.ينتقل المستخدم فقط إلى عمليات المسح الضوئي للمشاركة، وعندما يعود إلى مكتبه، ينتقل إلى صفحة الفحص الجديدة التي تعرض قائمة بجميع الملفات الجديدة غير المعالجة.

نظرًا لأن بيئة جمهورك خاضعة للتحكم، يمكنك كتابة ملحق/برنامج المتصفح الخاص بك استنادًا إلى WIA/TWAIN الذي يقوم بالمسح.إذا اخترت ملحقات المتصفح مثل BHO/ActiveX/XPCOM وما إلى ذلك، فستحتاج إلى الحصول على إذن المستخدم لتثبيت ملحقك.إذا اخترت كتابة برنامج، فقد تحتاج إلى تقنيات نشر الويب مثل ClickOnce أو Java Web Start ليتم تشغيلها من الويب.

يعد التعامل مع TWAIN بمثابة ألم على نظام التشغيل Windows.وبغض النظر عن التعقيد، يتعين عليك عرض بعض واجهات المستخدم الرسومية المكتوبة بواسطة مطوري برامج تشغيل الماسح الضوئي المختلفين.قد تكون هذه هي الطريقة الوحيدة لدعم الماسحات الضوئية القديمة أو الميزات التي لم يتم عرضها عبر واجهات أخرى مثل عمليات المسح الضوئي للصفحات المتعددة بأقصى سرعة من وحدة تغذية المستندات.

تعمل تقنية WIA من Microsoft على تسهيل التفاعل مع الماسح الضوئي باستخدام نموذج كائن البرمجة النصية، إلا أن الميزات الخاصة بالماسحة الضوئية غير متوفرة وبعض الماسحات الضوئية القديمة لا تدعم الواجهة.

بعد المسح، يمكنك الاتصال بخدمة ويب لإعلام الخادم ويمكن تحديث صفحة الويب بشكل دوري للتحقق من الصور الجديدة.

لقد فعلنا شيئا مماثلا.استخدمنا برنامج TWAIN لسطر الأوامر (http://www.burrotech.com/quickscan.php). $$ $49

1) قمنا بتطوير تطبيق .Net صغير لتشغيل برنامج QuickScan كأمر shell.
2) تم تعيين الأمر لزر المسح الضوئي.
3) بمجرد أن يضغط المستخدم على زر المسح الضوئي، ستظهر مطالبة بإدخال اسم الملف.يقوم المستخدم بحفظ معرف المعاملة كاسم الملف.
4) سوف يقوم تطبيق .Net آخر (أو ربما هو نفسه المذكور سابقًا) بقراءة هذا الملف وتحميله إلى قاعدة البيانات مع الأخذ في الاعتبار أن اسم الملف هو معرف المعاملة.

عملت مثل السكين الدافئ في الزبدة!



يمكنك محاولة عرض معرف المعاملة في IE، حيث يقوم المستخدم بتحديد المعرف ثم الضغط على Scan.سيقوم التطبيق الخاص بك بقراءة النص المحدد وحفظ الملف باستخدام النص المحدد كاسم للملف.لم نحاول ذلك ولكن يجب أن يعمل.

إنها مدينة فاضلة فقط إذا كنت تعتقد أن تطبيقات الويب تقتصر على متصفحات الويب، في الواقع، يمكن أن تتضمن تطبيقات الويب الكثير من التقنيات المختلفة، إلى جانب HTML وJavascript.

الطريقة الرائعة لحل هذه المشكلة -- في الواقع، لقد استخدمت ذلك بالفعل مع بعض أجهزة usbserial -- هي تنفيذ تطبيقك باستخدام SOAP+XMPP.يمكنك القيام بذلك في Perl باستخدام XML::CompileX::Transport::SOAPXMPP وCatalyst::Engine::XMPP2 وCatalyst::Controller::SOAP وCatalyst::Model::SOAP.

الشيء المثير للاهتمام في استخدام XMPP هو أنه يبسط إدارة العنونة، نظرًا لأنك تستخدم JID (معرف Jabber) للبحث عن وكيل البرنامج، وليس بعض مخططات عنونة المضيف + المنفذ.الجزء الثاني المثير للاهتمام من استخدام XMPP هو دعم الخادم الذي يرسل المعلومات إلى العميل بسهولة أكبر.

ولكن إذا كنت لا تريد التعامل مع XMPP، فلا يزال بإمكانك القيام بنفس الشيء باستخدام خادم http مضمن وخفيف الوزن - HTTP::Server::Simple، في Perl - وتسجيل عنوان الماسح الضوئي الحالي في الخادم بطريقة ما حتى يتمكن من ذلك أتصل مرة أخرى.

والخيار الأخير، وهو ليس لطيفًا جدًا، هو جعل وكيل البرنامج يستقصي الخادم لمعرفة متى يكون هناك أمر "مسح المستند ضوئيًا وتحميله" لهذا الجهاز المحدد وتحقيق هذه العملية عند وجودها.

باختصار، إن وجود وكيل برامج محلي للتفاعل مع الأجهزة المحلية لا يجعل تطبيق الويب الخاص بك أقل "ويبًا"، طالما أنك تستخدم معايير الويب - مثل XML وSOAP وغيرها - لإجراء هذا الاتصال.

يمكنك وضع برنامج Java الصغير في موقع الويب الخاص بك.يمكن لهذا الوصول إلى الماسح الضوئي وإرسال البيانات عبر REST إلى خادم الويب الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top