Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes scanning on duplex scanners #17

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

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

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.

1 participant