From Lazarus wiki
Revision as of 22:32, 11 April 2013 by Chronos (talk | contribs)

English (en) español (es)


PascalSane provides pascal bindings for the libsane library, enabling Lazarus and FreePascal applications to access scanners under Linux.

Principal operations  :

  • list available scanners
  • list options for a specified scanner
  • set options for a scanner
  • capture scanner input in PNM format

The download contains the libsane bindings and a unit saneutils.pas which provides some simple functions for manipulating scanner data. It also contains a demonstration Lazarus application, which contains examples of operations that can be performed using libsane.


Malcolm Poole: mgpoole at


The libsane headers are in the public domain. The demo application is licensed under the GPL


The latest stable release can be found at

Change Log

  • Version 0.2 8 May 2011
- Added missing functions and bitwise enumerations
- corrected translation of constraint union in SANE_Option_Descriptor
- fixed a number of memory management issues in demo project
- added libsane test backend to demo project
  • Version 0.1 19 November 2008

Dependencies / System Requirements

  • Linux
  • libsane (libsane-dev for Ubuntu)


Documentation for the Sane API covers all the functions provided by the bindings. The C source code for scanimage and other simple scanning applications are recommended for guidance.

How to include PascalSane in a Lazarus application

  • add 'sane' to the uses statement
  • in the Project Options dialog, add the path to sane.pas in the Other Unit Files section.

The PascalSane Example Application

  • Open pascalsanedemo.lpi
  • set path to sane.pas in Project Options dialog
  • compile
  • run