如何通过TWAIN获取扫描仪的当前DPI设置?

时间:2019-01-17 07:47:11

标签: c++ qt twain

我对Qt还是很陌生,现在我们正在开发一个使用TWAIN库控制扫描仪的应用程序。

默认情况下,我们假定扫描仪的DPI设置为300。 但是,如果偶然,用户在设备设置中手动将扫描仪的DPI设置为600,我们的应用程序必须进行相应的调整。

是否可以通过TWAIN内部了解扫描仪的DPI设置?知道知道当前选择了什么DPI设置。

1 个答案:

答案 0 :(得分:0)

好的。我想到了。事实证明,pTW_ENUMERATION具有一个名为CurrentIndex的属性,该属性存储所选DPI的索引。因此,根据How do I enumerate resolutions supported via TWAIN

中的代码
TW_CAPABILITY twCap;
GetCapability(twCap, ICAP_XRESOLUTION);

TW_UINT32 res = 0;

if (twCap.ConType == TWON_ENUMERATION) {
   pTW_ENUMERATION en = (pTW_ENUMERATION) GlobalLock(twCap.hContainer);

   if (en->ItemType == TWTY_FIX32)  {
      res = ((TW_UINT32*)(en->ItemList))[en->CurrentIndex];

     qDebug()<<res;
   }

}