This is the latest project I did for the company. By reusing existing equipment we achieved new features existing only in higher class scanners costing minimum 10 times more.
Injustice - Developers Among Us (SciFiDevCon 2024)
The scanner for direct payment invoices
1. Project scope and requirements
Project title: To streamline direct payment document approval by attaching scanned
PDF file to the document in SAP.
Project scope:
– Design bar-code labels carrying sequential file name and path on the server.
– Create external control panel equipped with the button and LCD character display for the
HP ScanJet500 scanner .
– Procure handheld 2D scanner to read file name and location from bar-coded label on the
original invoice.
– Develop control panel and server side software.
Project constrains:
– Users should not receive significant additional workload by using the new process.
– Existing HP ScanJet 5000 scanner and the Zebra label printer should be reused.
– Locate the scanner in the vicinity of the multifunctional printer unattended.
– There should be no computer directly attached to the scanner or accessible by the user.
– User should get the feedback about current scanning stage and outcome.
– Total budget excluding the HP ScanJet 5000 and Zebra printer (which we already have ) is
2K Euro per location.
0
2. Basic process flow chart
SAP document now is directly
linked to the PDF document on the
server.
User takes bar-coded
labels from the preprinted
roll and attaches them to
the direct payment File server
invoices. Scanner picks up the
file name and the path
embedded in the barcode
and enters it directly in the
Accountant fills in active field as if it was
required SAP data and typed from the physical
while still in the “Link keyboard.
to web page” filed
User puts scanned scans the document
documents in the locked
barcode with the
bin for accounting
handheld scanner.
department.
Automatic scanner
solution processes all
pages and saves PDF
documents on the server.
1
3. Detailed technical diagram
• Button connected to the Arduino module transmits command to the server via USB
to LAN adapter.
• Upon receiving the command “ScantoPDF” software scans inserted pages and
saves them on the server as PDF documents with the filename encoded in QR bar-
code. Any following page without barcode is treated as next page of the same PDF
document.
2
4. QR barcode label design
QR 2D (Quick Response code, two dimensional ) barcodes were selected for built-
in error protection and large amount of information they may carry. ScanToPdf
scanner software can automatically decode information stored in the bar-code and
assign appropriate file name. (http://en.wikipedia.org/wiki/QR_code)
• Company logo
• Department name
• QR code with the file path and file name encoded
• Human readable file path and name for backup
purpose.
Label view in Zebra
Designer software
Real labels printed with ZEBRA LP2844 printer.
3
5. ScanToPDF software key features
O Image Corporation “ScanToPDF” software was selected after comparison with the
main competitors by the following features -
– Cost effective, 1.2 K Euro per license with all needed modules included.
– Free evolution of all features (with embedded watermark).
– Small, fast and light. Executable file weights only 3 Mb. The whole package with all
possible modules weights only 15 Mb.
– Modular design when only needed features are activated
– Standard TWAIN and VIA scanner interfaces.
– Ability to detect and correctly read form any angle QR barcodes labels
– “Regex” rules for processing barcode values enabling any possible file naming schema.
– Easy to include in the external scripting solutions thanks to the rich set of command line
parameters
– Ability to perform unattended
4
6. Process control script files
Software presented here is in beta stage – meaning that it was tested in real
environment with sample documents. Many different test were made during
developments and after, but it is still possible that under same conditions during real
use additional programming could become necessary.
• Arduino code (www.arduino.cc) is responsible for
sending commands to the server and processing
responses displaying them on the LCD display.
• Button manager LUA script (www.lua.org) is server side
script communication with Arduino control panel. It
initiates scanning session and returns status responses
created by Events Manager PowerShell script.
• EventManager Windows PowerShell script
(http://bit.ly/fL1tcz) is responsible for parsing
ScanToPDF application log file finding number of
documents successfully processed. It also handles error
conditions such as
– Button was pressed without pages inserted
– Pages face up or bad first bar-code
5
7. Scanner control panel bill of materials
Item name Order code Qty Price Total LVL
LCD 8x2 LED yellwo 58x32x13.5 RC0802A-YHY-CSX 1 2,6 2,6
Pusgbutton ON-(ON) LED green/red PB613-3F-BL-13 1 0,95 0,95
Arduino Duemilanove controller board (USB) SP.ARDUINO_2009 1 19 19
Project box 15x29x44mm white Z23.WHITE 2 0,5 1
Project box 24x47x66mm white Z24A.WHITE 2 0,6 1,2
Ribbon cable gray 20 wires FBK28-20G 2 0,55 1,1
Doubleside skotch tape 1.2mm Tesa 04957 TPDS25/12/12.04957 1 3,2 3,2
2.54mm pin header 1x40 WSL140 1 0,15 0,15
LVL with VAT 29,2
Eur 41,54
All above listed materials and parts are off the shelf
components usually available immediately. Assembly
doesn't require special tolls or equipment. Electrical
requirements are 5 volts and 300 mA making it safe
to use in any environment.
3D rendering of the scanner and control panel were
done using free 3D modeling software “Google
sketchup” (http://sketchup.google.com/).
6