/scanservjs

SANE scanner nodejs web ui

Primary LanguageJavaScriptGNU General Public License v2.0GPL-2.0

scanservjs

Build Status Code QL Status Docker Image Size (latest by date) Docker Pulls GitHub stars GitHub

screenshot

Copyright 2016-2021 Sam Strachan

What people are saying

I've decided to switch to using only this, I find using this in a browser is just perfect and way better than bloated software from printer manufacturers

It enabled me to still use my old hp3900 scanner without worrying about drivers and vendor specific UIs. Furthermore, scans just being accessible via an awesome web interface makes it even more brilliant!

This is a great project! The touchscreen and buttons on my Brother scanner are broken, meaning the device is useless by itself because one cannot trigger scans, but with this project I can trigger it remotely just fine.

About

scanservjs is a web UI frontend for your scanner. It allows you to share one or more scanners (using SANE) on a network without the need for drivers or complicated installation.

Features

  • Cropping
  • Source selection (Flatbed / ADF)
  • Resolution
  • Output formats (TIF, JPG, PNG, PDF and TXT with Tesseract OCR) with varying compression settings
  • Filters: Autolevels, Threshold, Blur
  • Configurable overrides for all defaults as well as filters and formats
  • Multipage scanning (with collation for double sided scans)
  • International translations: Czech, French, German, Italian, Mandarin, Polish, Portuguese (BR), Russian, Spanish; Help requested
  • Light and dark mode
  • Responsive design

It supports any SANE compatible devices.

Requirements

  • SANE Scanner
  • Linux host (or VM with necessary pass-through e.g. USB)
  • Software sane-utils, ImageMagick, Tesseract (optional) and nodejs

Installation

Configuration and device override

If you want to override some specific configuration settings then you can do so within ./config/config.local.js. See Configuration for more detail.

Why?

This is yet another scanimage-web-front-end. Why? It originally started as an adaptation of phpsane - just to make everything a bit newer, give it a refresh and make it work on minimal installations without imagemagick - that version is still available but is no longer maintained. Since then, I just wanted to write it in node and enhance it a bit, and it's been a labour of love ever since.

Acknowledgements

  • This project owes its genesis to phpsane
  • Everyone who has filed issues, tested, fixed issues, added translations and helped over the years. Thank you!

More about SANE