Skip to main content

Signature capture with Anzio

Introduction

This article explains a possible framework that a programmer may want to use in order to capture, store, retrieve, and print hand-written signatures, such as from a customer in a point-of-sale environment.

This assumes that the main application is running on a Unix, Linux, or Windows server, and that it is character-based, so that there is a role to play for a terminal emulator; that is, Anzio.  I'll also assume that the reader can modify and install programs on the server.

Background

A variety of devices for capturing customers' signatures are available on the market. I won't describe them all - they keep changing. But I can say that some of them lend themselves to being integrated with other programs (such as Anzio).  Most notably, some include a command-driven EXE program that will capture the customer's signature to a specified filename and format.

The other major player in the game is Anzio.  Anzio is available at two feature levels, as Anzio Lite and AnzioWin (more features, more money). Most of what I describe can be done in both, but some requires AnzioWin. I'll try to point out those features. I'll refer to both as "Anzio".

Anzio has an extensive command capability. Some commands change settings within Anzio; some cause interaction with Windows or other programs that run on Windows; and others do file transfer. An Anzio command can, for instance, start up a signature-capture program.

One way that commands can be issued to Anzio is from the host program to which Anzio is connected. The protocol is very simple: the host issues a hex-1C character, then a string of characters that comprise the command, then a hex-1D character. I'll assume you know how to do that.

Anzio can also do file transfer, in either direction. When a file is moved from the host to the PC where Anzio runs, we call that "download". When a file moves to the host, we call that an "upload". Anzio supports several protocols for file transfer, including FTP, SFTP, Zmodem, and Kermit (some are not available in Anzio Lite). I'll focus on Zmodem, because that works in the largest number if installations.

The Capture Sequence

At the time of purchase, then, the following could take place:

  1. Host program tells Anzio to fire up the capture program that came with the capture device.
  2. Capture device's program appears on the screen, indicating that the device is ready for signing.
  3. Customer signs the device, and indicates that all is good.
  4. Capture program writes an image of the signature to the PC's disk, with a name and file format indicated by the command sequence.
  5. Anzio detects that capture is complete.
  6. Anzio does file transfer of signature file to the server, using Zmodem.
  7. Anzio notifies the server that the process is complete.
  8. Host program stores the image somewhere associated with the transaction.

Background on Printing images

AnzioWin (but not Anzio Lite) can also handle the task of printing an invoice with a signature on it. This can be done using the Print Wizard feature that is built in to AnzioWin, for the passthrough print channel.

I'll assume that the host system is already generating an invoice printout.  The data it generates may be in plain text (that is, without escape sequences), or it may be in the PCL-5 command language created by HP.

The Print Wizard feature can print images in two general ways. First, it can print an overlay, which is a form that is combined with each page of the printout. This overlay can be in Print Wizard Markup Language (PWML), for instance, and specify one or more image tags (""), each one being a logo, a picture of a part, or in this case, a signature. Keep in mind, though, that in this approach the image(s) appear on the same place on every page.

The second approach is to do inline images, where each appears at a certain specified point on the output. If you were printing a multi-line invoice, where each line had a signature, this would be appropriate. In order to do inline images in Print Wizard, you must use Print Wizard Markup Language as your main print job, so this will involve modifying your print generation program.



The Printing Sequence

At invoice printing time, the sequence would be:

  1. The host program downloads the signature file(s) to AnzioWin.
  2. The host program generates a PWML file containing the invoice, and specifying the signature as an IMG.
  3. The host program feeds that print output through a passthrough print mechanism to AnzioWin.
  4. AnzioWin receives the job, analyzes it, and prints the job, including the signature.

Alternatives

There are always many ways to design a system, of course. Here I'll mention just a few of the possible alternatives:

  • If the host system's disk is visible to the PC, such as through Windows networking or Samba, the file transfer steps would not be necessary.
  • A freestanding Print Wizard program could handle the printing task, apart from AnzioWin.
  • Print output could be made into a PDF and possibly emailed, instead of being printed.
  • At the time of signature capture, AnzioWin could combine an invoice "printout" with the signature, build it into a PDF, and store the PDF on the server.

A Future possibility

We are working on enhancements to Print Wizard that would allow the user to sign on the screen, on an image of the invoice or delivery receipt. This could be done on a TabletPC or a Windows-compatible slate. Please contact us if this would be of special interest.

This document was last reviewed August 29, 2011.

Copyright © 2024 Rasmussen Software, Inc. Legal Information & Privacy Policy
Send comments and suggestions to rsi@anzio.com