https://github.com/yushulx/docscan4nodejs
Node.js wrapper for Dynamsoft Service, supporting document scanning from TWAIN, WIA, ICA, SANE and eSCL scanners.
https://github.com/yushulx/docscan4nodejs
document escl ica sane scanner twain wia
Last synced: about 1 month ago
JSON representation
Node.js wrapper for Dynamsoft Service, supporting document scanning from TWAIN, WIA, ICA, SANE and eSCL scanners.
- Host: GitHub
- URL: https://github.com/yushulx/docscan4nodejs
- Owner: yushulx
- License: mit
- Created: 2023-09-06T07:47:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-15T03:25:57.000Z (over 1 year ago)
- Last Synced: 2024-10-08T08:08:12.493Z (7 months ago)
- Topics: document, escl, ica, sane, scanner, twain, wia
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/docscan4nodejs
- Size: 70.3 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Document Scanner SDK for Node.js
The package provides Node.js APIs for invoking the **Dynamic Web TWAIN Service REST API**. It helps developers create **desktop** or **server-side** document scanning and processing applications with ease.
---
## ๐ Key Features
- ๐จ๏ธ **Multi-Driver Support**
- TWAIN (32-bit & 64-bit)
- WIA (Windows Image Acquisition)
- SANE (Scanner Access Now Easy)
- ICA (Image Capture Architecture)
- eSCL (AirScan/Mopria)
- Wi-Fi Direct- ๐ **Cross-Platform Compatibility**
- Windows 7+
- macOS 10.15+
- Linux (x64 / ARM64 / MIPS64)---
## โ๏ธ Prerequisites
### โ Install Dynamic Web TWAIN Service:
- **Windows**: [Dynamsoft-Service-Setup.msi](https://demo.dynamsoft.com/DWT/DWTResources/dist/DynamsoftServiceSetup.msi)
- **macOS**: [Dynamsoft-Service-Setup.pkg](https://demo.dynamsoft.com/DWT/DWTResources/dist/DynamsoftServiceSetup.pkg)
- **Linux**:
- [Dynamsoft-Service-Setup.deb](https://demo.dynamsoft.com/DWT/DWTResources/dist/DynamsoftServiceSetup.deb)
- [Dynamsoft-Service-Setup-arm64.deb](https://demo.dynamsoft.com/DWT/DWTResources/dist/DynamsoftServiceSetup-arm64.deb)
- [Dynamsoft-Service-Setup-mips64el.deb](https://demo.dynamsoft.com/DWT/DWTResources/dist/DynamsoftServiceSetup-mips64el.deb)
- [Dynamsoft-Service-Setup.rpm](https://demo.dynamsoft.com/DWT/DWTResources/dist/DynamsoftServiceSetup.rpm)### ๐ Get a License
Request a [free trial license](https://www.dynamsoft.com/customer/license/trialLicense/?product=dcv&package=cross-platform) for the Dynamic Web TWAIN Service.
---
## ๐งฉ Configuration
After installation, open `http://127.0.0.1:18625/` in your browser to configure the **host** and **port** settings.
> By default, the service is bound to `127.0.0.1`. To access it across the LAN, change the host to your local IP (e.g., `192.168.8.72`).

---
## ๐ก REST API Endpoints
[https://www.dynamsoft.com/web-twain/docs/info/api/restful.html](https://www.dynamsoft.com/web-twain/docs/info/api/restful.html)
## ๐ฆ Node.js APIs
### ๐ Scanner APIs
- `getDevices(host, scannerType)`
Get available scanners. Returns an array of devices.- `createJob(host, parameters)`
Create a new scan job. Returns a job object.- `checkJob(host, jobId)`
Check job status (e.g., running, canceled, etc.)- `deleteJob(host, jobId)`
Delete a scan job and terminate scanning.- `updateJob(host, jobId, parameters)`
Update job status (e.g., cancel a running job).- `getScannerCapabilities(host, jobId)`
Get scanner capabilities like resolution, color modes.### ๐ผ๏ธ Image Retrieval
- `getImageFile(host, jobId, directory)`
Fetch one image and save to local disk.- `getImageFiles(host, jobId, directory)`
Fetch all images for a job and save to local disk.- `getImageStream(host, jobId)`
Fetch one image as a readable stream.- `getImageStreams(host, jobId)`
Fetch all images as streams.- `getImageInfo(host, jobId)`
Retrieve metadata of the next page.### ๐ Document APIs
- `createDocument(host, parameters)`
Create a new empty document (PDF).- `getDocumentInfo(host, docId)`
Get document metadata and structure.- `deleteDocument(host, docId)`
Delete an existing document.- `getDocumentFile(host, docId, directory)`
Download the document and save as a PDF.- `getDocumentStream(host, docId)`
Download document as a stream.- `insertPage(host, docId, parameters)`
Insert a new page into an existing document.- `deletePage(host, docId, pageId)`
Remove a page from an existing document.---
## โ๏ธ Scan Job Parameters
The configuration follows [Dynamsoft Web TWAIN DeviceConfiguration](https://www.dynamsoft.com/web-twain/docs/info/api/Interfaces.html#DeviceConfiguration).
```js
let parameters = {
license: "LICENSE-KEY",
device: devices[0].device,
config: {
IfShowUI: false,
PixelType: 2, // Color
Resolution: 200,
IfFeederEnabled: false,
IfDuplexEnabled: false
}
};
```---
## ๐งช Examples
Set the `LICENSE-KEY` before running the examples.
### ๐ฅ๏ธ Command-line App
- [Command-line Example](https://github.com/yushulx/dynamsoft-service-REST-API/tree/main/examples/command-line)
- Discover devices
- Scan and save documents
### ๐ Web Server App
- [Web Server Example](https://github.com/yushulx/dynamsoft-service-REST-API/tree/main/examples/web)
