Skip to content

Conversation

@fewebahr
Copy link

@fewebahr fewebahr commented Jan 6, 2023

Some scanners (e.g. the Fujitsu ScanSnap S1500) scan both sides of a document in a single pass.

The result is that the one operation on a duplex scanner can result in 2 images, if the scanned document is in fact 2-sided. Each image may have on or multiple frames depending on the Format, just like in simplex.

Right now, the ReadImage function calls *Conn.Cancel() every time *Conn.ReadImage is invoked. This is safe for a simplex scanner-- but for a duplex scanner, it cancels the operation, losing the second image created by the second side of the document. The result is that each call to *Conn.ReadImage returns only the front side of each document.

This diff fixes the problem. It is only necessary to call *Conn.Cancel if an error was encountered (in which case it is acceptable that the second side is lost). This way, *Conn.ReadImage can be invoked multiple times; once for the front, and once for the back (if any).

@fewebahr
Copy link
Author

fewebahr commented Jan 7, 2023

See #18

@nint8835
Copy link

This PR also fixes scanning from scanners equipped with an automatic document feeder (my current use-case), any chance this PR could be merged @tjgq?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants