mirror of
https://github.com/soukoku/ntwain.git
synced 2025-04-05 20:59:23 +08:00
1178 lines
49 KiB
HTML
1178 lines
49 KiB
HTML
<html xmlns:v="urn:schemas-microsoft-com:vml"
|
||
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||
xmlns:w="urn:schemas-microsoft-com:office:word"
|
||
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
|
||
xmlns="http://www.w3.org/TR/REC-html40">
|
||
|
||
<head>
|
||
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
|
||
<meta name=ProgId content=Word.Document>
|
||
<meta name=Generator content="Microsoft Word 12">
|
||
<meta name=Originator content="Microsoft Word 12">
|
||
<link rel=File-List href="GettingStarted_files/filelist.xml">
|
||
<title>Kodak Document Scanners</title>
|
||
<!--[if gte mso 9]><xml>
|
||
<o:DocumentProperties>
|
||
<o:Author>50484369</o:Author>
|
||
<o:LastAuthor>50484369</o:LastAuthor>
|
||
<o:Revision>2</o:Revision>
|
||
<o:TotalTime>5</o:TotalTime>
|
||
<o:Created>2012-06-20T19:28:00Z</o:Created>
|
||
<o:LastSaved>2012-06-20T19:33:00Z</o:LastSaved>
|
||
<o:Pages>2</o:Pages>
|
||
<o:Words>1762</o:Words>
|
||
<o:Characters>10047</o:Characters>
|
||
<o:Company>Microsoft</o:Company>
|
||
<o:Lines>83</o:Lines>
|
||
<o:Paragraphs>23</o:Paragraphs>
|
||
<o:CharactersWithSpaces>11786</o:CharactersWithSpaces>
|
||
<o:Version>12.00</o:Version>
|
||
</o:DocumentProperties>
|
||
</xml><![endif]-->
|
||
<link rel=themeData href="GettingStarted_files/themedata.thmx">
|
||
<link rel=colorSchemeMapping href="GettingStarted_files/colorschememapping.xml">
|
||
<!--[if gte mso 9]><xml>
|
||
<w:WordDocument>
|
||
<w:SpellingState>Clean</w:SpellingState>
|
||
<w:TrackMoves>false</w:TrackMoves>
|
||
<w:TrackFormatting/>
|
||
<w:ValidateAgainstSchemas/>
|
||
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
|
||
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
|
||
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
|
||
<w:DoNotPromoteQF/>
|
||
<w:LidThemeOther>EN-US</w:LidThemeOther>
|
||
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
|
||
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
|
||
<w:Compatibility>
|
||
<w:BreakWrappedTables/>
|
||
<w:SnapToGridInCell/>
|
||
<w:WrapTextWithPunct/>
|
||
<w:UseAsianBreakRules/>
|
||
<w:DontGrowAutofit/>
|
||
<w:SplitPgBreakAndParaMark/>
|
||
<w:DontVertAlignCellWithSp/>
|
||
<w:DontBreakConstrainedForcedTables/>
|
||
<w:DontVertAlignInTxbx/>
|
||
<w:Word11KerningPairs/>
|
||
<w:CachedColBalance/>
|
||
</w:Compatibility>
|
||
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
|
||
<m:mathPr>
|
||
<m:mathFont m:val="Cambria Math"/>
|
||
<m:brkBin m:val="before"/>
|
||
<m:brkBinSub m:val="--"/>
|
||
<m:smallFrac m:val="off"/>
|
||
<m:dispDef/>
|
||
<m:lMargin m:val="0"/>
|
||
<m:rMargin m:val="0"/>
|
||
<m:defJc m:val="centerGroup"/>
|
||
<m:wrapIndent m:val="1440"/>
|
||
<m:intLim m:val="subSup"/>
|
||
<m:naryLim m:val="undOvr"/>
|
||
</m:mathPr></w:WordDocument>
|
||
</xml><![endif]--><!--[if gte mso 9]><xml>
|
||
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
|
||
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
|
||
LatentStyleCount="267">
|
||
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
|
||
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
|
||
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="heading 2"/>
|
||
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="heading 3"/>
|
||
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="heading 4"/>
|
||
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="heading 5"/>
|
||
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="heading 6"/>
|
||
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="heading 7"/>
|
||
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="heading 8"/>
|
||
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="heading 9"/>
|
||
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
|
||
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
|
||
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
|
||
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
|
||
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
|
||
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
|
||
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
|
||
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
|
||
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
|
||
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
|
||
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
|
||
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
|
||
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
|
||
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
|
||
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
|
||
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Table Grid"/>
|
||
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
|
||
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
|
||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Shading"/>
|
||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light List"/>
|
||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Grid"/>
|
||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 1"/>
|
||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 2"/>
|
||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 1"/>
|
||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 2"/>
|
||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 1"/>
|
||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 2"/>
|
||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 3"/>
|
||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Dark List"/>
|
||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Shading"/>
|
||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful List"/>
|
||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Grid"/>
|
||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light List Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
|
||
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
|
||
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
|
||
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
|
||
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
|
||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
|
||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light List Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
|
||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light List Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
|
||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light List Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
|
||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light List Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
|
||
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light List Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
|
||
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
|
||
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
|
||
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
|
||
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
|
||
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
|
||
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
|
||
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
|
||
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
|
||
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
|
||
</w:LatentStyles>
|
||
</xml><![endif]-->
|
||
<style>
|
||
<!--
|
||
/* Font Definitions */
|
||
@font-face
|
||
{font-family:"Cambria Math";
|
||
panose-1:2 4 5 3 5 4 6 3 2 4;
|
||
mso-font-charset:0;
|
||
mso-generic-font-family:roman;
|
||
mso-font-pitch:variable;
|
||
mso-font-signature:-536870145 1107305727 0 0 415 0;}
|
||
/* Style Definitions */
|
||
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
||
{mso-style-unhide:no;
|
||
mso-style-qformat:yes;
|
||
mso-style-parent:"";
|
||
margin:0in;
|
||
margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
font-size:12.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
h1
|
||
{mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-qformat:yes;
|
||
mso-style-link:"Heading 1 Char";
|
||
margin-top:6.0pt;
|
||
margin-right:0in;
|
||
margin-bottom:3.0pt;
|
||
margin-left:0in;
|
||
text-align:justify;
|
||
page-break-before:always;
|
||
mso-pagination:widow-orphan;
|
||
page-break-after:avoid;
|
||
mso-outline-level:1;
|
||
font-size:18.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
h2
|
||
{mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-qformat:yes;
|
||
mso-style-link:"Heading 2 Char";
|
||
margin-top:6.0pt;
|
||
margin-right:0in;
|
||
margin-bottom:6.0pt;
|
||
margin-left:0in;
|
||
mso-pagination:widow-orphan;
|
||
page-break-after:avoid;
|
||
mso-outline-level:2;
|
||
font-size:14.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
h3
|
||
{mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-qformat:yes;
|
||
mso-style-link:"Heading 3 Char";
|
||
margin-top:6.0pt;
|
||
margin-right:0in;
|
||
margin-bottom:3.0pt;
|
||
margin-left:0in;
|
||
mso-pagination:widow-orphan;
|
||
page-break-after:avoid;
|
||
mso-outline-level:3;
|
||
font-size:12.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
h4
|
||
{mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-qformat:yes;
|
||
mso-style-link:"Heading 4 Char";
|
||
margin-top:12.0pt;
|
||
margin-right:0in;
|
||
margin-bottom:3.0pt;
|
||
margin-left:0in;
|
||
mso-pagination:widow-orphan;
|
||
page-break-after:avoid;
|
||
mso-outline-level:4;
|
||
font-size:14.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
h5
|
||
{mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-qformat:yes;
|
||
mso-style-link:"Heading 5 Char";
|
||
margin-top:6.0pt;
|
||
margin-right:0in;
|
||
margin-bottom:3.0pt;
|
||
margin-left:0in;
|
||
mso-pagination:widow-orphan;
|
||
mso-outline-level:5;
|
||
font-size:10.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;
|
||
font-weight:normal;}
|
||
h6
|
||
{mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-qformat:yes;
|
||
mso-style-link:"Heading 6 Char";
|
||
margin-top:12.0pt;
|
||
margin-right:0in;
|
||
margin-bottom:3.0pt;
|
||
margin-left:0in;
|
||
mso-pagination:widow-orphan;
|
||
mso-outline-level:6;
|
||
font-size:11.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;
|
||
font-weight:normal;
|
||
font-style:italic;}
|
||
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
|
||
{mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-qformat:yes;
|
||
mso-style-link:"Heading 7 Char";
|
||
margin-top:12.0pt;
|
||
margin-right:0in;
|
||
margin-bottom:3.0pt;
|
||
margin-left:0in;
|
||
mso-pagination:widow-orphan;
|
||
mso-outline-level:7;
|
||
font-size:10.0pt;
|
||
font-family:"Arial","sans-serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
|
||
{mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-qformat:yes;
|
||
mso-style-link:"Heading 8 Char";
|
||
margin-top:12.0pt;
|
||
margin-right:0in;
|
||
margin-bottom:3.0pt;
|
||
margin-left:0in;
|
||
mso-pagination:widow-orphan;
|
||
mso-outline-level:8;
|
||
font-size:10.0pt;
|
||
font-family:"Arial","sans-serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;
|
||
font-style:italic;}
|
||
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
|
||
{mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-qformat:yes;
|
||
mso-style-link:"Heading 9 Char";
|
||
margin:0in;
|
||
margin-bottom:.0001pt;
|
||
line-height:12.0pt;
|
||
mso-pagination:widow-orphan;
|
||
mso-outline-level:9;
|
||
font-size:1.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
p.MsoToc1, li.MsoToc1, div.MsoToc1
|
||
{mso-style-update:auto;
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:39;
|
||
margin:0in;
|
||
margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
font-size:12.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
p.MsoBodyText2, li.MsoBodyText2, div.MsoBodyText2
|
||
{mso-style-noshow:yes;
|
||
mso-style-priority:99;
|
||
mso-style-link:"Body Text 2 Char";
|
||
margin-top:0in;
|
||
margin-right:0in;
|
||
margin-bottom:6.0pt;
|
||
margin-left:0in;
|
||
line-height:200%;
|
||
mso-pagination:widow-orphan;
|
||
font-size:12.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
p.MsoBodyText3, li.MsoBodyText3, div.MsoBodyText3
|
||
{mso-style-noshow:yes;
|
||
mso-style-priority:99;
|
||
mso-style-link:"Body Text 3 Char";
|
||
margin-top:0in;
|
||
margin-right:0in;
|
||
margin-bottom:6.0pt;
|
||
margin-left:0in;
|
||
mso-pagination:widow-orphan;
|
||
font-size:8.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
a:link, span.MsoHyperlink
|
||
{mso-style-noshow:yes;
|
||
mso-style-priority:99;
|
||
color:blue;
|
||
text-decoration:underline;
|
||
text-underline:single;}
|
||
a:visited, span.MsoHyperlinkFollowed
|
||
{mso-style-noshow:yes;
|
||
mso-style-priority:99;
|
||
color:purple;
|
||
text-decoration:underline;
|
||
text-underline:single;}
|
||
span.Heading1Char
|
||
{mso-style-name:"Heading 1 Char";
|
||
mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-locked:yes;
|
||
mso-style-link:"Heading 1";
|
||
mso-ansi-font-size:14.0pt;
|
||
mso-bidi-font-size:14.0pt;
|
||
font-family:"Cambria","serif";
|
||
mso-ascii-font-family:Cambria;
|
||
mso-ascii-theme-font:major-latin;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:major-fareast;
|
||
mso-hansi-font-family:Cambria;
|
||
mso-hansi-theme-font:major-latin;
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-bidi-theme-font:major-bidi;
|
||
color:#365F91;
|
||
mso-themecolor:accent1;
|
||
mso-themeshade:191;
|
||
font-weight:bold;}
|
||
span.Heading2Char
|
||
{mso-style-name:"Heading 2 Char";
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-locked:yes;
|
||
mso-style-link:"Heading 2";
|
||
mso-ansi-font-size:13.0pt;
|
||
mso-bidi-font-size:13.0pt;
|
||
font-family:"Cambria","serif";
|
||
mso-ascii-font-family:Cambria;
|
||
mso-ascii-theme-font:major-latin;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:major-fareast;
|
||
mso-hansi-font-family:Cambria;
|
||
mso-hansi-theme-font:major-latin;
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-bidi-theme-font:major-bidi;
|
||
color:#4F81BD;
|
||
mso-themecolor:accent1;
|
||
font-weight:bold;}
|
||
span.Heading3Char
|
||
{mso-style-name:"Heading 3 Char";
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-locked:yes;
|
||
mso-style-link:"Heading 3";
|
||
mso-ansi-font-size:12.0pt;
|
||
mso-bidi-font-size:12.0pt;
|
||
font-family:"Cambria","serif";
|
||
mso-ascii-font-family:Cambria;
|
||
mso-ascii-theme-font:major-latin;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:major-fareast;
|
||
mso-hansi-font-family:Cambria;
|
||
mso-hansi-theme-font:major-latin;
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-bidi-theme-font:major-bidi;
|
||
color:#4F81BD;
|
||
mso-themecolor:accent1;
|
||
font-weight:bold;}
|
||
span.Heading4Char
|
||
{mso-style-name:"Heading 4 Char";
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-locked:yes;
|
||
mso-style-link:"Heading 4";
|
||
mso-ansi-font-size:12.0pt;
|
||
mso-bidi-font-size:12.0pt;
|
||
font-family:"Cambria","serif";
|
||
mso-ascii-font-family:Cambria;
|
||
mso-ascii-theme-font:major-latin;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:major-fareast;
|
||
mso-hansi-font-family:Cambria;
|
||
mso-hansi-theme-font:major-latin;
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-bidi-theme-font:major-bidi;
|
||
color:#4F81BD;
|
||
mso-themecolor:accent1;
|
||
font-weight:bold;
|
||
font-style:italic;}
|
||
span.Heading5Char
|
||
{mso-style-name:"Heading 5 Char";
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-locked:yes;
|
||
mso-style-link:"Heading 5";
|
||
mso-ansi-font-size:12.0pt;
|
||
mso-bidi-font-size:12.0pt;
|
||
font-family:"Cambria","serif";
|
||
mso-ascii-font-family:Cambria;
|
||
mso-ascii-theme-font:major-latin;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:major-fareast;
|
||
mso-hansi-font-family:Cambria;
|
||
mso-hansi-theme-font:major-latin;
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-bidi-theme-font:major-bidi;
|
||
color:#243F60;
|
||
mso-themecolor:accent1;
|
||
mso-themeshade:127;}
|
||
span.Heading6Char
|
||
{mso-style-name:"Heading 6 Char";
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-locked:yes;
|
||
mso-style-link:"Heading 6";
|
||
mso-ansi-font-size:12.0pt;
|
||
mso-bidi-font-size:12.0pt;
|
||
font-family:"Cambria","serif";
|
||
mso-ascii-font-family:Cambria;
|
||
mso-ascii-theme-font:major-latin;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:major-fareast;
|
||
mso-hansi-font-family:Cambria;
|
||
mso-hansi-theme-font:major-latin;
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-bidi-theme-font:major-bidi;
|
||
color:#243F60;
|
||
mso-themecolor:accent1;
|
||
mso-themeshade:127;
|
||
font-style:italic;}
|
||
span.Heading7Char
|
||
{mso-style-name:"Heading 7 Char";
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-locked:yes;
|
||
mso-style-link:"Heading 7";
|
||
mso-ansi-font-size:12.0pt;
|
||
mso-bidi-font-size:12.0pt;
|
||
font-family:"Cambria","serif";
|
||
mso-ascii-font-family:Cambria;
|
||
mso-ascii-theme-font:major-latin;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:major-fareast;
|
||
mso-hansi-font-family:Cambria;
|
||
mso-hansi-theme-font:major-latin;
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-bidi-theme-font:major-bidi;
|
||
color:#404040;
|
||
mso-themecolor:text1;
|
||
mso-themetint:191;
|
||
font-style:italic;}
|
||
span.Heading8Char
|
||
{mso-style-name:"Heading 8 Char";
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-locked:yes;
|
||
mso-style-link:"Heading 8";
|
||
font-family:"Cambria","serif";
|
||
mso-ascii-font-family:Cambria;
|
||
mso-ascii-theme-font:major-latin;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:major-fareast;
|
||
mso-hansi-font-family:Cambria;
|
||
mso-hansi-theme-font:major-latin;
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-bidi-theme-font:major-bidi;
|
||
color:#404040;
|
||
mso-themecolor:text1;
|
||
mso-themetint:191;}
|
||
span.Heading9Char
|
||
{mso-style-name:"Heading 9 Char";
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:9;
|
||
mso-style-unhide:no;
|
||
mso-style-locked:yes;
|
||
mso-style-link:"Heading 9";
|
||
font-family:"Cambria","serif";
|
||
mso-ascii-font-family:Cambria;
|
||
mso-ascii-theme-font:major-latin;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:major-fareast;
|
||
mso-hansi-font-family:Cambria;
|
||
mso-hansi-theme-font:major-latin;
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-bidi-theme-font:major-bidi;
|
||
color:#404040;
|
||
mso-themecolor:text1;
|
||
mso-themetint:191;
|
||
font-style:italic;}
|
||
span.BodyText2Char
|
||
{mso-style-name:"Body Text 2 Char";
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:99;
|
||
mso-style-unhide:no;
|
||
mso-style-locked:yes;
|
||
mso-style-link:"Body Text 2";
|
||
mso-ansi-font-size:12.0pt;
|
||
mso-bidi-font-size:12.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
span.BodyText3Char
|
||
{mso-style-name:"Body Text 3 Char";
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:99;
|
||
mso-style-unhide:no;
|
||
mso-style-locked:yes;
|
||
mso-style-link:"Body Text 3";
|
||
mso-ansi-font-size:8.0pt;
|
||
mso-bidi-font-size:8.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;}
|
||
p.style4, li.style4, div.style4
|
||
{mso-style-name:style4;
|
||
mso-style-unhide:no;
|
||
margin-top:6.0pt;
|
||
margin-right:0in;
|
||
margin-bottom:3.0pt;
|
||
margin-left:0in;
|
||
text-align:justify;
|
||
page-break-before:always;
|
||
mso-pagination:widow-orphan;
|
||
page-break-after:avoid;
|
||
font-size:18.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;
|
||
font-weight:bold;}
|
||
p.style2, li.style2, div.style2
|
||
{mso-style-name:style2;
|
||
mso-style-unhide:no;
|
||
margin-top:6.0pt;
|
||
margin-right:0in;
|
||
margin-bottom:6.0pt;
|
||
margin-left:0in;
|
||
mso-pagination:widow-orphan;
|
||
page-break-after:avoid;
|
||
font-size:14.0pt;
|
||
font-family:"Times New Roman","serif";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-fareast-theme-font:minor-fareast;
|
||
font-weight:bold;
|
||
font-style:italic;}
|
||
span.SpellE
|
||
{mso-style-name:"";
|
||
mso-spl-e:yes;}
|
||
.MsoChpDefault
|
||
{mso-style-type:export-only;
|
||
mso-default-props:yes;
|
||
font-size:10.0pt;
|
||
mso-ansi-font-size:10.0pt;
|
||
mso-bidi-font-size:10.0pt;}
|
||
@page WordSection1
|
||
{size:8.5in 11.0in;
|
||
margin:1.0in 1.25in 1.0in 1.25in;
|
||
mso-header-margin:.5in;
|
||
mso-footer-margin:.5in;
|
||
mso-paper-source:0;}
|
||
div.WordSection1
|
||
{page:WordSection1;}
|
||
-->
|
||
</style>
|
||
<!--[if gte mso 10]>
|
||
<style>
|
||
/* Style Definitions */
|
||
table.MsoNormalTable
|
||
{mso-style-name:"Table Normal";
|
||
mso-tstyle-rowband-size:0;
|
||
mso-tstyle-colband-size:0;
|
||
mso-style-noshow:yes;
|
||
mso-style-priority:99;
|
||
mso-style-qformat:yes;
|
||
mso-style-parent:"";
|
||
mso-padding-alt:0in 5.4pt 0in 5.4pt;
|
||
mso-para-margin:0in;
|
||
mso-para-margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
font-size:10.0pt;
|
||
font-family:"Times New Roman","serif";}
|
||
</style>
|
||
<![endif]--><!--[if gte mso 9]><xml>
|
||
<o:shapedefaults v:ext="edit" spidmax="2050"/>
|
||
</xml><![endif]--><!--[if gte mso 9]><xml>
|
||
<o:shapelayout v:ext="edit">
|
||
<o:idmap v:ext="edit" data="1"/>
|
||
</o:shapelayout></xml><![endif]-->
|
||
</head>
|
||
|
||
<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>
|
||
|
||
<div class=WordSection1>
|
||
|
||
<p class=MsoNormal>Kodak KDS TWAIN Driver</p>
|
||
|
||
<p class=MsoNormal>Getting Started</p>
|
||
|
||
<p class=MsoNormal>20-June-2012</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal><b><u><span style='font-size:14.0pt'>Contents</span></u></b></p>
|
||
|
||
<p class=MsoToc1>1. <a href="#_Overview">Overview</a>......................................................................................................................
|
||
2</p>
|
||
|
||
<p class=MsoToc1>2. <a
|
||
href="#_GUI_Based_Applications_(the_old_way">GUI Based Applications (the old
|
||
way)</a>...........................................................................
|
||
3</p>
|
||
|
||
<p class=MsoToc1>3. <a
|
||
href="#_Programmatic_Based_Applications_(th">Programmatic Based Applications
|
||
(the newer way)</a>........................................................ 4</p>
|
||
|
||
<p class=MsoToc1>4. <a
|
||
href="#_Profile_Based_Applications_(the_bes">Profile Based Applications (the
|
||
best way)</a>......................................................................
|
||
5</p>
|
||
|
||
<p class=MsoToc1>5. <a href="#_Decoupling">Decoupling</a>....................................................................................................................
|
||
6</p>
|
||
|
||
<p class=MsoToc1>6. <a
|
||
href="#_Logging_and_the_Simulator">Logging and the Simulator</a>..............................................................................................
|
||
7</p>
|
||
|
||
<p class=MsoToc1>7. <a href="#_Sample_Code">Sample Code</a>................................................................................................................
|
||
8</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<h1 style='margin-left:.25in;text-indent:-.25in'><a name="_Toc56932519"></a><a
|
||
name="_Toc39263860"></a><a name="_Toc32301880"></a><a name="_Overview"></a><span
|
||
style='mso-fareast-font-family:"Times New Roman"'>1.</span><span
|
||
style='font-size:7.0pt;mso-fareast-font-family:"Times New Roman"'> </span><span
|
||
style='mso-fareast-font-family:"Times New Roman"'>Overview<o:p></o:p></span></h1>
|
||
|
||
<p class=MsoNormal>Developing an application using any image capture
|
||
application programming interfaces (API) is a challenge. The basic
|
||
premise of these systems is that the application discovers a device through its
|
||
driver, interrogates it about its capabilities, sets a session up, and then
|
||
starts scanning. The problem is that there are a large number of
|
||
capabilities all interacting in a variety of ways (some obvious and some not),
|
||
so that getting the driver to do exactly what is desired is not always as
|
||
straightforward as could be hoped. And, as with any API, things usual
|
||
work well until errors are encountered, then the amount of code increases
|
||
dramatically to accommodate all the possible results for any given operation.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>TWAIN provides ways to mitigate this work, though it may not
|
||
be obvious from reading the specification. This document will outline
|
||
some development strategies designed to create robust, flexible
|
||
applications. It is assumed that the reader has some familiarity with TWAIN,
|
||
either from previous coding experience or from reading some of the TWAIN
|
||
specification.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<h1 style='margin-left:.25in;text-indent:-.25in'><a name="_Toc56932520"></a><a
|
||
name="_GUI_Based_Applications_(the_old_way"></a><span style='mso-fareast-font-family:
|
||
"Times New Roman"'>2.</span><span style='font-size:7.0pt;mso-fareast-font-family:
|
||
"Times New Roman"'> </span><span style='mso-fareast-font-family:
|
||
"Times New Roman"'>GUI Based Applications (the old way)<o:p></o:p></span></h1>
|
||
|
||
<p class=MsoNormal>When TWAIN was developed in the early 1990<39>s the single
|
||
focus of the effort was to bring applications and drivers together.
|
||
Previously an application writer would select a device, like a flatbed scanner,
|
||
get the driver for it and write the application code to talk to that
|
||
device. Support for a new device meant getting its driver and writing
|
||
code to support it as well. TWAIN was designed to abstract away that
|
||
driver code, hiding it behind a common API. Now it was possible for an
|
||
application to start scanning and capture image data in a way that worked for
|
||
any device <span class=SpellE>the</span> came with a TWAIN driver.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>There was one area that the standard did not try to handle
|
||
at first, and that was capability negotiation. True, TWAIN came with a
|
||
selection of programmatic capabilities, so that it was possible to negotiate
|
||
some kinds of values, but the selection was small. Instead drivers came
|
||
with internally generated dialogs. The application invoked these dialogs
|
||
and left all the problems of negotiation to the driver. The benefit was
|
||
that an application could realize the full functionality of a device while
|
||
writing very little code. The problem was that scanner vendors all had
|
||
very different ideas about what these dialogs should look like, so a user
|
||
moving from using one scanner to another was very likely to end up working with
|
||
a very different user interface.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<h1 style='margin-left:.25in;text-indent:-.25in'><a name="_Toc56932521"></a><a
|
||
name="_Programmatic_Based_Applications_(th"></a><span style='mso-fareast-font-family:
|
||
"Times New Roman"'>3.</span><span style='font-size:7.0pt;mso-fareast-font-family:
|
||
"Times New Roman"'> </span><span style='mso-fareast-font-family:
|
||
"Times New Roman"'>Programmatic Based Applications (the newer way)<o:p></o:p></span></h1>
|
||
|
||
<p class=MsoNormal>Beginning with version 1.7 of the TWAIN specification and
|
||
continuing through 1.8 and 1.9 an attempt has been made to allow for more
|
||
sophisticated support of scanner capabilities. In fact the TWAIN
|
||
specification doubled in size going from 1.7 to 1.8. The original 1.5
|
||
description of TWAIN allowed for the following kinds of things: standard
|
||
and custom capability definitions, capabilities using a variety of container
|
||
types (enumerations and ranges among them), self-descriptive data types
|
||
(integers, strings, etc<74>), and access modes (read-only, read-write, etc).
|
||
1.8 introduced the ability to independently address the image generating
|
||
devices (for instance the front and rear cameras, or the color and <span
|
||
class=SpellE>bitonal</span> cameras). It made it possible to write
|
||
applications that could drive most or all of the features of a scanner without
|
||
resorting to the custom user interface provided by the driver.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>The problem was that most driver writers created their
|
||
drivers for specific applications and since these applications didn<64>t
|
||
significantly exercise the programmatic interface, the drivers often did not
|
||
perform well when accessed in this way. Improvements in the testing
|
||
documentation and the basic specification, and the stated desire from
|
||
applications writers has resulted in better programmatic drivers, but that
|
||
still leaves another problem.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>Programmatic interfaces must reflect the abilities of their
|
||
drivers. They must constrain possible values as dictated by the device,
|
||
and they must prevent illegal combinations of functionality. What this
|
||
means is that an application may not be limited to just asking what the allowed
|
||
values are in a range or an enumeration. If the application is currently
|
||
negotiating on a color camera, then ICAP_THRESHOLDING may not be available
|
||
until the camera context is changed to <span class=SpellE>bitonal</span>.
|
||
If the ICAP_XFERMECH is set to allow native mode transfers (bitmaps on Windows
|
||
systems) then ICAP_COMPRESSION may only report a possible value of
|
||
<EFBFBD>none<EFBFBD>. So the application has to conduct inquiries on permutations of
|
||
settings within the driver.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>The benefit to all this hard work is that the application
|
||
can present a single unified interface to the user, regardless of the physical
|
||
device currently in use, which means that end users do not need to be retrained
|
||
(save maybe for basic functional differences) anytime they operate a new
|
||
scanner with the application. Over the past several years more and more
|
||
application writers have been opting to rely on programmatic control, or in
|
||
some cases a combination of programmatic control for the most commonly used
|
||
features with the ability to raise the driver GUI for the more rarely used
|
||
features.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<h1 style='margin-left:.25in;text-indent:-.25in'><a name="_Toc56932522"></a><a
|
||
name="_Profile_Based_Applications_(the_bes"></a><span style='mso-fareast-font-family:
|
||
"Times New Roman"'>4.</span><span style='font-size:7.0pt;mso-fareast-font-family:
|
||
"Times New Roman"'> </span><span style='mso-fareast-font-family:
|
||
"Times New Roman"'>Profile Based Applications (the best way)<o:p></o:p></span></h1>
|
||
|
||
<p class=MsoNormal>There is a third alternative that was introduced with little
|
||
fanfare in the TWAIN 1.7 specification. The operation DAT_CUSTOMDSDATA
|
||
(if supported) can be used to take a snapshot of the current state of the
|
||
driver. It can also be used to restore the settings of the driver using
|
||
one of these snapshots. 1.7 also introduced the concept of a <20>settings
|
||
only<EFBFBD> TWAIN GUI through the DG_CONTROL / DAT_USERINTERFACE /
|
||
MSG_ENABLEDSUIONLY. In this mode the user can set whatever features they
|
||
want from the TWAIN supplied GUI, but their only finishing option is to select
|
||
OK or CANCEL.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>The application writer creates two programs. One
|
||
program raises the TWAIN GUI, allows the user to set whatever values they want,
|
||
then when OK is hit takes a snapshot of the driver using DAT_CUSTOMDSDATA and
|
||
saves the result in a file tagged with some useful name or description from the
|
||
user, like <20>photo settings<67> or <20>insurance form settings.<2E> The second
|
||
program is the scanning application, but all it presents to the user is a list
|
||
of these snapshot or profile descriptions. So the user selects <20>photo
|
||
settings,<2C> the application reads that file from disk, sends the data to the
|
||
driver using DAT_CUSTOMDSDATA, and begins scanning. Note that it is still
|
||
possible to raise the GUI or to programmatically negotiate values; the intention
|
||
is to minimize that need.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>In this way we get full access to the features of the device
|
||
without writing a lot of code, and protect the scanner operator from having to
|
||
be retrained anytime a new scanner shows up. All of the Kodak Document
|
||
Scanners (5000/7000/9000/3000/4000/i30/i40/i200/i600/i800/i900/i1100/i1200/i1300/i1400/i1800/i2000/i2900/i3000/i4000/i5000)
|
||
support this command. Most application writers should give serious
|
||
thought to using this technique to drive their scanner.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<h1 style='margin-left:.25in;text-indent:-.25in'><a name="_Toc56932523"></a><a
|
||
name="_Decoupling"></a><span style='mso-fareast-font-family:"Times New Roman"'>5.</span><span
|
||
style='font-size:7.0pt;mso-fareast-font-family:"Times New Roman"'> </span><span
|
||
style='mso-fareast-font-family:"Times New Roman"'>Decoupling<o:p></o:p></span></h1>
|
||
|
||
<p class=MsoNormal>One of the most powerful features in TWAIN is its ability to
|
||
totally decouple the negotiation phase (state 4/5) from the image capture phase
|
||
(state 6/7). From the earliest versions of the scanner the application
|
||
writer has been encouraged to look at the bitmap information for a native
|
||
transfer, the header information for a file transfer, or the DAT_IMAGEINFO
|
||
information for a memory transfer. Starting with version 1.7 and
|
||
continuing with 1.8 and 1.9 of the TWAIN specification we have supported the
|
||
DAT_EXTIMAGEINFO command, which allows for the collection of a block of
|
||
metadata associated with an image.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>The gist of it is: never assume that what was negotiated is
|
||
what is going to be captured by the scanner. This applies to the
|
||
following items (there may be more): ICAP_AUTOMATICBORDERDETECTION (custom
|
||
ICAP_CROPPINGMODE), ICAP_AUTOMATICDESKEW, and ICAP_PIXELTYPE and all related
|
||
capabilities (when using the color toggle patch). The application should
|
||
be ready for anything to come from the scanner. That does not mean it has
|
||
to accept the data it is receiving, if it cannot handle a color image when
|
||
waiting for a <span class=SpellE>bitonal</span> image, then it should throw an
|
||
error to the user. However, the application should not ASSUME that the
|
||
data coming from the scanner is exactly what it negotiated. If an
|
||
application obeys this basic rule of decoupling then it will be never be
|
||
surprised by the behavior of the scanner in a way that results in a failure or
|
||
a crash.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<h1 style='margin-left:.25in;text-indent:-.25in'><a name="_Toc56932524"></a><a
|
||
name="_Logging_and_the_Simulator"></a><span style='mso-fareast-font-family:
|
||
"Times New Roman"'>6.</span><span style='font-size:7.0pt;mso-fareast-font-family:
|
||
"Times New Roman"'> </span><span style='mso-fareast-font-family:
|
||
"Times New Roman"'>Logging and the Simulator<o:p></o:p></span></h1>
|
||
|
||
<p class=MsoNormal>Other documents in this kit talk about both of these
|
||
items. The purpose of this section is to show how they can be used to aid
|
||
in development. When first writing an application for a Kodak Document
|
||
Scanner it might be helpful to see some of the activity that occurs through
|
||
TWAIN while the device is being driven by another application.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>The Scanner Validation Tool (SVT) is not necessarily the
|
||
best application in the world for this kind of work, but at least it is
|
||
something. If you go into the CONST.INI file and turn on debugging so
|
||
that it traces the TWAIN activity:</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>
|
||
; Versions 2/3/4</p>
|
||
|
||
<p class=MsoNormal>
|
||
Debug=1</p>
|
||
|
||
<p class=MsoNormal>
|
||
<span class=SpellE>DebugFilter</span>=<span class=SpellE>kdscaps</span> <span
|
||
class=SpellE>kdsdat</span></p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>
|
||
; Version 5+</p>
|
||
|
||
<p class=MsoNormal>
|
||
Debug=1</p>
|
||
|
||
<p class=MsoNormal>
|
||
<span class=SpellE>DebugFilter</span>=TWAIN</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>Then when you run the SVT the driver will generate a log of all
|
||
the activity that takes place between it and the application. This
|
||
information is written using TWAIN constants that can be found in the
|
||
specification and in the TWAIN.H file. Use this information to understand
|
||
what is being done to setup the driver and capture the images. Please
|
||
note that SVT is a GUI Based Application (in fact it is a diagnostic tool), so
|
||
it<EFBFBD>s not very sophisticated in its ability to programmatically negotiate
|
||
settings. It is, however, very sophisticated in its ability to drive the
|
||
scanner to its maximum throughput speeds. It also has a variety of error
|
||
handling abilities, so it responds well to jams and <span class=SpellE>multifeeds</span>,
|
||
among the other things that can happen.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal>You can use the simulator to get exactly the same results
|
||
you would with a real scanner, which is especially useful for testing against
|
||
all the varied models supported by the driver.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
<h1 style='margin-left:.25in;text-indent:-.25in'><a name="_Toc56932525"></a><a
|
||
name="_Sample_Code"></a><span style='mso-fareast-font-family:"Times New Roman"'>7.</span><span
|
||
style='font-size:7.0pt;mso-fareast-font-family:"Times New Roman"'> </span><span
|
||
style='mso-fareast-font-family:"Times New Roman"'>Sample Code<o:p></o:p></span></h1>
|
||
|
||
<p class=MsoNormal>The TWAIN Working Group website (<a
|
||
href="http://www.twain.org/">www.twain.org</a>) has sample application
|
||
code. We will include any sample code with this kit as it seems
|
||
appropriate.</p>
|
||
|
||
<p class=MsoNormal> </p>
|
||
|
||
</div>
|
||
|
||
</body>
|
||
|
||
</html>
|