New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

docscan4nodejs

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

docscan4nodejs

Node.js API for Dynamsoft Document Scanning Service. Supports TWAIN, SANE, ICA, WIA, eSCL scanners.

  • 0.2.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

docscan4nodejs

The package provides Node.js APIs for invoking Dynamsoft Service REST API. It helps developers to create desktop or server-side document scanning applications with ease.

Supported Scanner Drivers

  • TWAIN
  • WIA
  • SANE
  • ICA
  • eSCL

Supported Platforms

  • Windows
  • Linux
  • macOS

Prerequisites

  • Install Dynamsoft Service for Windows.

    Currently, the REST API is only available on Windows. It will come to Linux (x64, ARM64) and macOS soon.

  • Request a free trial license for Dynamsoft Service.

Dynamsoft Service Configuration

After installing the Dynamsoft Service, navigate to http://127.0.0.1:18625/ in a web browser to configure the host and port settings. The default host IP address is set to 127.0.0.1. If you wish to make the service accessible over the network, you can update the host setting to a public IP address.

dynamsoft-service-config

JavaScript API

  • getDevices(host) - Get all available scanners. It returns an array of scanner objects.
  • scanDocument(host, parameters) - Create a scanner job by feeding one or multiple physical documents. It returns the job id.
  • getImageFiles(host, jobId, directory) - Get document images by job id. The directory specifies the physical location to save the images. It returns an array of image paths.
  • deleteJob(host, jobId) - Delete a scan job by job id. It can interrupt the scan process.
  • getImageStreams(host, jobId) - Get document images by job id. It returns an array of image streams.

Parameter Configuration

The parameter configuration is based on Dynamsoft Web TWAIN documentation. It controls the behavior of the scanner.

For example, you can set the resolution to 200 DPI and the pixel type to color:

let parameters = {
    license: "LICENSE-KEY",
    device: devices[index].device,
};

parameters.config = {
    IfShowUI: false,
    PixelType: 2, // color
    Resolution: 200,
    IfFeederEnabled: false,
    IfDuplexEnabled: false,
};

Quick Start

Set the LICENSE-KEY in the code below. Then, run the code in a terminal:

const docscan4nodejs = require("docscan4nodejs")
const readline = require('readline');

let devices = [];
let host = 'http://127.0.0.1:18622';

const questions = `
Please select an operation:
1. Get scanners
2. Acquire documents by scanner index
3. Quit
`
let rl = readline.createInterface({ input: process.stdin, output: process.stdout });
function askQuestion() {
    rl.question(questions, function (answer) {
        if (answer === '3') {
            rl.close();
        }
        else if (answer === '1') {
            docscan4nodejs.getDevices(host).then((scanners) => {
                for (let i = 0; i < scanners.length; i++) {
                    devices.push(scanners[i]);
                }    
                askQuestion();
            });
        }
        else if (answer == '2') {
            if (devices.length == 0) {
                console.log('Please get scanners first!\n');
                askQuestion();
                return;
            }

            rl.question('\nSelect an index (<= ' + (devices.length - 1) + '): ', function (index) {
                index = parseInt(index, 10);
                if (isNaN(index)) {
                    console.log("It is not a number.");
                    askQuestion();
                } else {
                    if (index < 0 || index >= devices.length) {
                        console.log("It is out of range.");
                        
                        askQuestion();
                    } else {
                        let parameters = {
                            license: "LICENSE-KEY",
                            device: devices[index].device,
                        };

                        parameters.config = {
                            IfShowUI: false,
                            PixelType: 2,
                            Resolution: 200,
                            IfFeederEnabled: false,
                            IfDuplexEnabled: false,
                        };

                        docscan4nodejs.scanDocument(host, parameters).then((jobId) => {
                            if (jobId !== '') {
                                console.log('job id: ' + jobId);
                                (async () => {
                                    let images = await docscan4nodejs.getImages(host, jobId, './');
                                    await docscan4nodejs.deleteJob(jobId);
                                    askQuestion();
                                })();
                            }
                        });
                    }
                }
            });
        }
    });
}

askQuestion();
  • Get all available scanners

    image

  • Acquire a Document

    image

Keywords

FAQs

Package last updated on 08 Sep 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc