TWAIN Specification
Version 2.5
This document was ratified
by the TWAIN Working Group
on November 4
th
, 2021.
Acknowledgments
The TWAIN Working Group acknowledges the following individuals and their respective
companies for their contributions to this document. Their hard work in defining, designing,
editing, proofreading, and discussing the evolution of the document have been invaluable.
We would also like to thank the TWAIN Working Group Technical Committee for their opinions
and contributions.
Atalasoft, a Kofax Company
Michael Chernikov
Dynamsoft Corporation
Michael Daw
Epson America, Inc.
Daniel Nishijima
ExactCODE GmbH
Rene Rebe
Fujitsu Computer Products of America
Hari Asuri
Hewlett-Packard Company
Rajat Bera
InoTec GmbH Organisationssysteme
Benjamin Meyer
Kodak Alaris
Mark McLaughlin
LEAD Technologies
Javed Ahsan
Microtek International, Inc.
James Chuang
P3iD Technologies
Kevin Neal
Panasonic Corporation
Joseph Odore
Plustek, Inc.
Maggie Su
Table of Contents
TWAIN 2.5 Specification i
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-1
Need for Consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Elements of TWAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Benefits of Using TWAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
Creation of TWAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
2. Technical Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-1
TWAIN Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
TWAIN User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Communication Between the Elements of TWAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Using Operation Triplets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
The State-Based Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14
Modes Available for Data Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19
3. Application Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-1
Levels of TWAIN Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Installation of the Source Manager Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Changes Needed to Prepare for a TWAIN Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Controlling a TWAIN Session from Your Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26
Best Practices for TWAIN Compliant Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28
Legacy Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-40
Table of Contents
ii TWAIN 2.5 Specification
4. Advanced Application Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-1
Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Options for Transferring Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-17
The ImageData and Its Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-23
Transfer of Multiple Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-26
Transfer of Compressed Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
Alternative User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-35
Grayscale and Color Information for an Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-38
5. Source Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-1
The Structure of a Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
Operation Triplets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
Sources and the Event Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3
User Interface Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4
Capability Negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6
Data Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8
Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11
Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12
Requirements for a Source to be TWAIN-Compliant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13
Other Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23
6. Entry Points and Triplet Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-1
Entry Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Data Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
Data Argument Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6
Custom Components of Triplets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8
Table of Contents
TWAIN 2.5 Specification iii
7. Operation Triplets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-1
Triplet Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
Format of the Operation Triplet Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5
Operation Triplets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7
8. Data Types and Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-1
Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
Platform Dependent Definitions and Typedefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3
Definitions of Common Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6
Data Structure Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8
Data Argument Types that Don’t Have Associated TW_Structures . . . . . . . . . . . . . . . . . . . 8-64
Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-66
Deprecated Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-100
9. Extended Image Information Definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-1
TWAIN 1.7 Extended Image Attribute Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1
TWAIN 1.9 Extended Image Attribute Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-12
TWAIN 1.91 Extended Image Attribute Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15
TWAIN 2.0 Extended Image Attribute Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-17
TWAIN 2.1 Extended Image Attribute Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-17
TWAIN 2.2 Extended Image Attribute Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-18
TWAIN 2.3 Extended Image Attribute Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-18
TWAIN 2.4 Extended Image Attribute Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-19
TWAIN 2.5 Extended Image Attribute Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-19
10. Capabilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-1
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1
Required Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3
Capabilities in Categories of Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3
评论0