T O P I C R E V I E W |
JonRobertson |
Posted - Oct 31 2011 : 15:00:57 I'm testing a Fujitsu scanner against our new scanning implementation (which uses ImageEn). We've recommended the Fujitsu fi-series scanners to our customers for years and our customers love them.
I'd like the ability to scan a single page even if there are multiple pages loaded in the feeder. I've tried setting TwainParams.FeederEnabled := False and TwainParams.AutoFeed := False. Yet, the Fujitsu still scans everything in the feeder.
After stepping through Acquire, which calls IETW_SetCapabilities, I can't see a problem in the ImageEn source. I'm assuming that the scanner simply ignores the CAP_FEEDERENABLED value from the application.
Does anyone have experience with this? Any workarounds available?
I thought about implementing the OnAcquireBitmap event to acquire the first page and then stop the scan. But I can't see a way to tell ImageEn/Twain to stop scanning from that event.
Thanks |
5 L A T E S T R E P L I E S (Newest First) |
JonRobertson |
Posted - Nov 10 2011 : 08:04:30 Thanks fabrizio, it did solve the issue! I can now scan a single page from the feeder even when the feeder contains multiple pages. |
fab |
Posted - Nov 03 2011 : 13:48:06 Next minor version will have two new Twain properties named AcceptedImages (to acquire only a specified number of pages) and AutoScan (to prevent pre-acquiring). They should fix this problem. Please send me a private email if you want to test a preview of this version. |
JonRobertson |
Posted - Nov 02 2011 : 09:31:24 Using TImageEnView, the scanner still scans all of the pages in the feeder. Of course the TImageEnView only contains a single page. |
fab |
Posted - Nov 01 2011 : 22:49:52 Just a try: please use TImageEnView instead of TImageEnMView and try to call Acquire. What happens? |
JonRobertson |
Posted - Oct 31 2011 : 16:01:43 I tested with the ScandAll PRO utility that came with the Fujitsu scanner. It is using the TWAIN driver and I can scan a single page with it even though the ADF contains additional pages.
I thought that if I passed multi = False into IETW_Acquire, so that IETW_XferReady is called instead of IETW_XferReadyMulti, that maybe I could get a single page scan. However, IETW_XferReady seems to be dependent on IOParams, which is nil.
When stepping through IETW_XferReadyMulti, the scanner physically scans the second page before the first page has even finished transferring. So ImageEn isn't detecting the additional page and telling the scanner to scan it. Something during negotiation is telling or allowing the scanner to scan multiple pages.
I've briefly read over chapters 3 and 4 of the TWAIN spec, looking for the magic clue that is telling the scanner to scan everything in the feeder. Unfortunately, I don't have the experience with TWAIN to know for sure what I'm looking for. Pending Transfers makes sense. But that is after the scanner has already scanned every page. Since the CAP_AUTOFEED and CAP_FEEDERENABLED capabilities are enabled as False, I can't find what it is telling the scanner to scan all pages.
I'm not sure this scanner supports CAP_FEEDERENABLED = False, as there is no flat bed. The only way to scan is to use the feeder, even for a single sheet.
But that doesn't explain why CAP_AUTOFEED isn't working as expected. |