Accessing scanner at client side from a web page without applet - javascript

I want to acces a scanner at client side, before I was using java applet without problem but after chrome has decided to not support java what can I do. If there's solution with JS, Jquery or other language please tell me

For client-side you'll want to use Dynamic Web TWAIN. Unfortunately there are no other solutions, but this one is well maintained and documented. The technology for scanners in browsers isn't quite there yet. Read up some of the other posts on Stack Overflow regarding the same web scanning issues here. There's been almost a year's worth of discussion on exactly this topic.

Atalasoft has a web scanning toolkit that should meet your needs:
Atalasoft WingScan product page
The product does not use browser-specific plugins and therefore works nicely in all modern browsers (IE8+, Chrome, Firefox).
Architecturally, there is a small local component that should be installed, which exposes RESTful web service. Web page uses standard JavaScript/jQuery to communicate with the service and scan/import/enhance images.
Here is the online demo, so you could try it out right away: Wing Scan Demo page
The scanning component is based on the EZTwain library, and it includes a number of image processing algorithms that improve quality of scanned images (deskew, autorotate, blank page detection, etc.)
You can optionally license and use embedded VRS technology, which I have to say is impressively good at cleaning up scans.

HTML was not capable of it in general before (for security issues, not access to the OS), but this is changing.
HTML 5 has now meany features.
See that post with very detailed informations: Can HTML5 communicate with peripherals like scanners and credit card readers?
In particular, you should focus on camera/video capabilities, which can work for scanners too: http://www.w3.org/TR/2012/WD-mediacapture-streams-20120628/

You can combine TWAIN server and WebSocket as the alternative solution.
Here is a tutorial introducing how to acquire images on server-side using Dynamic .NET TWAIN and send the captured images to Web client via WebSocket.
If you want to use Java, read the tutorial Document Web Scanning in HTML5 and Java.
Dynamic .NET TWAIN is a commercial software. You can replace it with any TWAIN scanning solution you like.

You have to made a desktop apllication that will work in background. Desktop application will remain connected with browser while it is open. When browser command to scan the desktop apllication scan document and send it to browser.
Here is the solution. Very easy to implement just follow the steps there.
ScanAppForWeb

Related

Exposing Native Device APIs to Web Apps

There are a lot of ways to develop an app nowadays. You can create a full native app, hybrid app, pwa or website. There are probably some formats of apps I didn't mention however that's besides the point. The last two decades have proven that smartphones are the way most of the people(users) are interacting with apps and that's clearly also how they want to interact all the time literally all the time! Developers(wizards) have been working to meet those demands by creating solutions like .Net blazor, Xamarin, Vue, Angular, ect to meet the demand for apps and their development. Currently app stores from Google and Apple are the way apps are distributed only for use to pay them a cut of our app revenue so we look to the web. When we want to create a highly secure app (server-side) we look to the web. When we want to support most operating systems we look to the web. I assume you get the point. only there is one thing that stands in the way and that is excess to the users native device APIs. There are alot of native APIs that are already available in HTML5 only we know that those aren't the specific ones we need for the app we develop. So what are the ways we can expos native device APIs to web apps?
Look at Cordova Plugins: https://cordova.apache.org. If you want to expose API into web, you just should write some player application (web browser) witch will translates JS commands into native API callbacks. To achieve it, you can use WKScriptMessageHandler.
Here you can find an example.
It is not very complicated, but if you want to cover all API, it will very complicated code.
Also, you forget about one coin of a web application: long time of a response, especially with low internet connection. I do not think that is a good idea.

HTML5 Offline Application: How to view TIFF files from localStorage (FileSystem API)

I have a potential customer who wants an application that can download large amounts of TIFF files locally on a machine for display.
After having discarded Java apps and Windows apps as too difficult to distribute (he has no control over the client computers) I am suggesting an offline HTML5 application.
TIFF is only natively displayed by Safari, and the FileSystem API only works on Google. WebSQL will be too small for the amount of data required (3-4 GB).
I've looked at different plug-ins (AlternaTIFF and BlackIce) but both need to be installed separately, which most of the users will probably find difficult to do.
I am wondering if there was a local TIFF Viewer that I could call from the browser that would open the TIFF from the FileSystem?
If this does not work, the last solution would be a conversion of the TIFFs to something else on the server, but it's going to make my database double in volume.
Any suggestions would be welcome!
UPDATE:
The target computers are not under the control of the client. There is no easy way to distribute the software to all the target computers. I'm assuming they are all windows machines, but it's no guarantee that .NET is installed.
That's the reason I opted for HTML5. At the moment I'm considering a Java Application launched with Java Web Application.
Customer has not yet confirmed the type of files they are using.
The customer is in the construction industry, the TIFFs are scans of large plans which (I assume) will need to be high-quality (zoomable, printable etc) so I don't think a rescaling to JPG will be accepted.
SECOND UPDATE
I'm coming to the conclusion that an HTML5 App is not going to be able to answer all the requirements. In particular there is one requirement that requires a multi-document print (select n documents and have them printed out in a batch). I'm starting to consider standalone applications that can be deployed and updated easily over a wide range of Windows configurations. I'm thinking of a Java Rich Client distribution over Java Web Start or a Microsoft application distributed via one-click-run. I'd simply write the files on the local filesystem and have the client display the images in-line. Would that be a good idea?
Thanks for all the comments.
I've come to the conclusion that it's a bad idea to try and view these files in browsers.
I'm going the way of a separate standalone Windows application. I'll be using the standard viewing and printing functionalities from Windows, which will avoid me all the headache of having to recreate that myself.

Is it possible to build a home automation system with web technology?

I can build all sorts of web applications with common web technologies on both the client and server (JavaScript, PHP, CFML, etc.).
I would like to build some home automation tools and I have no idea how to get from the strictly digital world to the physical world.
Let's say I want a super simple web app to display a bunch of switches in the user interface for some different things in my house. Let's say I'm using X10 hardware (http://www.x10.com/x10-basics.html) that is "listening" for some radio signal.
Is there a way to use web technology to "instruct" my devices (smartphone, tablet, laptop, whatever) to "broadcast signals" to these X10 (or any) physical device in order to make my home more Jetsons-like?
It seems like JavaScript couldn't do any of this because of security stuff, but perhaps a server app running on my local device on my home network could tie into some underlying OS library and do this?
wirelessService = new system.os.superCoolWirelessBroadcasterService();
wirelessService.broadcastSignal("6520 mghz", true); // toaster frequency
All my mobile stuff is an HTML5 front end with an self-hosting asp.net web API backend. I use a https proxy application for security. But I run my stuff on an intranet. It's very easy in my opinion and very rewarding.
Here are a couple of videos:
https://www.youtube.com/watch?v=_2_JSbEytnM
https://www.youtube.com/watch?v=zOhOEWoED4M
Now I did integrate Google Glass which is an app:
https://www.youtube.com/watch?v=vLmPJ9xvfs0
Here you can find a complete listing:
https://www.youtube.com/results?search_query=nick+tullos+home+automation
Here is some of the source code:
https://github.com/NickTullos/CrestJson
Good luck!
You absolutely can. I created several automated processes with Coldfusion. Look at the scheduled tasks section of the Coldfusion administrator.
Many things that are one of specialized tools like barcodes generation or scanner software (just as examples) have third party dlls on Windows with Coldfusion (nothing is perfect mind you) some even required us to extend Internet Explorer via activeX controls. Some of these things included warehousing housekeeping tools, three dimensional boxing interfacing, shipped product checks and payment authorization switches, refund switches, warehousing scale interfaces and U.S. Mail/Endicia/UPS manifest generation.
Nowadays, I do many automated import processes with third party source data. Just formatted CSV or Excel files sent via FTP where I scan and pick of the file for processing.
We also parse raw data from a power inverter and create graphs for review and other statistically useful things for a client. This was not an easy task because there are things in that technology that I am not equipped for and had to learn (power inverter speak). Also the shorthand their technologists used to name data-points made some sense to them, but was immensely obscure and not very easy to translate.
I will tell you that one of the hardest interfaces I worked with was a 1996 serial port based warehouse scale that we got after the DHL bankruptcy. I thought I would lose my mind. There were baud settings like older modems and if there was a failure it didn't do anything (no error nothing).
I would assume you would have to consider that obscure real world interfacing with things that are digital may or may not be feasible.
Coldfusion is very good at automating because it is a dynamic language with an easy to use administrative backend that can access deeper things via Java objects and native .NET support (so anything is possible)!

When they say carbyn is an html5 based OS, do they mean that carbyn is a javascript based OS?

More specifically, How is it possible to create an os with a markup language? Or is this really a misnomer and the OS itself is built on top of JavaScript?
I don't wish for any sort of markup for the actual os, but it just seems like an impossible task without even the most basic control flow, like if statements/for loops or jumps.
If anyone can show me an If in Html5, I will definitely be satisfied, or just a they do that stuff with javascript works as well.
http://www.carbyn.com/
http://www.youtube.com/watch?v=mNAuB5JWfoE
It sounds like a web application, that itself is a platform for HTML5 (mostly javscript) web applications. It provides a set of APIs that javascript "applications" can implement to run on their platform and "multitask" and communicate amongst each other.
To help visualize, you can think of how facebook has apps that developers can make. That's not a perfect comparison, but it can kind of help you get in the right frame of mind. Carbyn seems MUCH more open than facebook is in terms of apps, and of course that's the whole point.
That's my thoughts after reading what's available and watching the video, hope it helps!

Communication between RS422 serial device and Javascript

I've written a simple web page that uses Javascript to control a Quicktime plugin for movie playback. There's also some AJAX stuff using jquery to get info on the movies from an MSSQL database. The web page is served to the user from an Apache 2.0 server, this also hosts MSSQL. The end users will view the page in IE6 (unfortunately).
My problem is that the end users now want to use an RS422 jog/shuttle deck control to drive the movie timeline, in place of another jog/shuttle unit that relied on emulating keypresses which was easy for me to detect.
As I'm not a programmer I'm at a loss what to start looking at for a solution to receive the RS422 data and then send that to the Javascript to control the timeline. Is this something that a custom activeX bit of code could do? I've googled ActiveX with Javascript but it's unclear to me (as a novice) how the two work together, or whether this would be suitable at all.
If anyone could give me an overview of what to start researching that'd be much appreciated.
Many thanks.
Jon
JavaScript runs in a sandbox and has no access to the computer at all (for security reasons; you really don't want to make it any more simple for frauds to get at your credit card data).
ActiveX would work but it's a security risk, too. ActiveX is written in C++, no JavaScript there. You'll find information about that on the M$ Website. Note that ActiveX is usually disabled today because of said security risks. Depending how serious your client take security, the virus scanner might not allow to start an A/X control.
Another option would be to write small program which is installed on the client's computer that reads the serial port and send that to the web server where your JavaScript can query it. Okay, that's more than a bit convoluted but probably the least risky.
Or you write a program which transforms the serial codes into key presses (just create the event and post it to Windows). Again, you need C++ or maybe Python with the win32 package.
Your client must understand that this is something which sounds incredibly simple but you'll have to jump through a lot of hoops to make it work. A web browser is not a local application with full reign of the hardware (and it must never be).

Categories