2014-09-22 249 views
0

我试图使用TWAINDotNet API来控制Epson扫描仪。我几乎所有的工作,但我无法正确设置dpi。使用TWAINDotNet设置扫描仪dpi:设置dpi> 1200失败

如果我将API设置为300,600甚至1199 dpi,则扫描仪按预期工作。不幸的是,当我尝试将dpi设置为1200或更高时,我得到TWAINException指示“TwainDotNet.TwainNative.ConditionCode.CapabilitySequenceError”。 扫描仪当然能够达到1200pi(以及甚至更高的dpi值)。

我使用TWAINDotNet从2010年VB.Net

我明白任何意见。

+1

,如果你什么是扫描仪的用户界面和设置的dpi 1200从那里?你能扫描成功吗? – Rachel 2014-09-23 05:51:29

+0

是如果我从扫描仪用户界面中选择1200,则它会正确扫描。我的问题是我需要完全自动化这个过程。我也试过SaraffTwain,但它列出了从1dpi到1184dpi的1184种不同的分辨率。 – 2014-09-23 14:16:15

+0

也请尝试Twack,看看您是否可以成功扫描。如果发生同样的问题,请检查错误日志以获取更多信息。 http://www.twain.org/scannerdriverdevelopers/specification-and-tools.html – Rachel 2014-09-24 06:02:59

回答

0

吐温的“CapabilitySequenceError”意思是“能力依赖于其他能力”。这取决于您的特定扫描仪在将dpi设置为1200之前需要设置哪些设置。

在某些情况下,扫描仪会按照特定顺序设置上限。关于我的头顶,也许你需要将扫描速度改为'慢'(我只是猜测)。

+0

这让我在别的地方看。查看Epson Scan Applet,在设置1200 dpi之前还不清楚还需要设置哪些设置。扫描仪的速度是一个很好的猜测,但似乎并不是扫描仪上的一个固定参数。 IT似乎根据需要调整速度。 – 2014-09-22 20:38:55

1

与爱普生合作,我解决了这个问题。在V550扫描仪上,最大分辨率是要扫描区域的功能。对于完整的8.5inx11in页面,最大分辨率为1184dpi。

要设置高于1200dpi的分辨率,您需要将要扫描的区域设置为较小的区域。

要解决这个问题,在datasource.cs,所有你需要做的就是移动

if (settings.Area != null) 
{ 
    NegotiateArea(settings); 
} 

if (settings.Resolution != null) 
{ 
    NegotiateColour(settings); 
    NegotiateResolution(settings); 
} 
+0

太棒了,你得到它的工作! – Rachel 2014-10-28 07:03:15