// 勾选框被反勾选时的处理 private void CheckBox_UnChecked(object sender, RoutedEventArgs e) { if (!initFinishedFlag) { return; } CheckBox checkBox = e.Source as CheckBox; CapInfo capInfo = null; int index = 0; for (int i = 0; i < capList.Length; i++) { TwCap tempCapId = capList[i]; if (capToControl[tempCapId] as CheckBox == checkBox) { index = i; break; } } TwCap capId = capList[index]; capInfo = twSession.GetScannerCap(capId); capInfo.CurrentIntStr = "0"; SetOneValue((Control)checkBox, capInfo); UpdateConfigUi(index + 1, capList.Length - 1); }
public bool hasPlaten; //是否有平板 public void GetPaperSource() { if (twSession.defaultScannerName.ToLower().Contains("kodak")) { capId = TwCap.CAP_PAPERSOURCE; CapItem capItem = twSession.GetCapabilitySupportedDataList(TwCap.CAP_PAPERSOURCE); CapType = capItem.listDataType; CurrentIntStr = twSession.GetCapabilityCurrentValue(TwCap.CAP_PAPERSOURCE, ref capType); DefaultIntStr = twSession.GetCapabilityDefaultValue(TwCap.CAP_PAPERSOURCE, ref capType); if (capItem.list != null && capItem.list.Count == 3) { hasPlaten = true; if (valueList == null) { valueList = new ArrayList(); } valueList.Clear(); valueList.Add(PaperSouceString.ADF); valueList.Add(PaperSouceString.Platen); } //如果是自动模式,则设置为送纸器 if (currentIntStr.Equals("0")) { bool flag = SetCap("1"); if (flag) { currentIntStr = "1"; } } capId = TwCap.ECAP_PAPERSOURCE; } }
/// <summary> /// Creates the specified a Capability. /// </summary> /// <param name="ds">The DS.</param> /// <param name="cap">The Capability.</param> /// <returns></returns> public static XCapability <T> Create(XDs ds, TwCap cap) { return(new XCapability <T> { DataSource = ds, Id = cap }); }
/// <summary> /// 保存能力设置 /// </summary> /// <param name="capId">能力标识</param> /// <param name="oneValue">能力值</param> public void SetSettings(TwCap capId, TwOneValue oneValue) { if (userSettings == null) { return; } userSettings[capId] = oneValue; }
/// <summary> /// Initializes a new instance of the <see cref="DataSourceCapabilityAttribute"/> class. /// </summary> /// <param name="capability">The capability.</param> /// <param name="type">The type.</param> public DataSourceCapabilityAttribute(TwCap capability, TwType type) { this.Capability = capability; this.Type = type; this.Get = TwOn.Enum; this.GetCurrent = this.GetDefault = TwOn.One; this.SupportedOperations = TwQC.Get | TwQC.GetCurrent | TwQC.GetDefault | TwQC.Set | TwQC.Reset; }
public TwCapability(TwCap cap, short sval) { Cap = (short)cap; ConType = (short)TwOn.One; Handle = Twain.GlobalAlloc(0x42, 6); IntPtr pv = Twain.GlobalLock(Handle); Marshal.WriteInt16(pv, 0, (short)TwType.Int16); Marshal.WriteInt32(pv, 2, sval); Twain.GlobalUnlock(Handle); }
/// <summary> /// Initializes a new instance of the <see cref="TwCapability"/> class. /// </summary> /// <param name="cap">The cap.</param> /// <param name="range">The range.</param> public TwCapability(TwCap cap, _TwRange range) { this.Cap = cap; this.ConType = TwOn.Range; this.Handle = Twain32.GlobalAlloc(0x42, Marshal.SizeOf(typeof(_TwRange))); IntPtr _pTwRange = Twain32.GlobalLock(Handle); Marshal.StructureToPtr(range, _pTwRange, true); Twain32.GlobalUnlock(Handle); }
/// <summary> /// 添加一个数据项到下拉列表 /// </summary> /// <param name="strItem"></param> /// <param name="ctrl"></param> /// <param name="capID"></param> private void AddComboBoxItem(String strItem, Control ctrl, TwCap capID) { ComboBoxItem newItem = new ComboBoxItem(); string capStr = twSession.ConvertIntStringToEnumString(capID, strItem); if (capStr != null) { newItem.Content = capStr; ((ComboBox)(ctrl)).Items.Add(newItem); } }
public TwCapability(TwCap cap, short sval, TwType twType) { this.Cap = (short)cap; this.ConType = 5; this.Handle = Twain.GlobalAlloc(66, 6); IntPtr ptr = Twain.GlobalLock(this.Handle); Marshal.WriteInt16(ptr, 0, (short)twType); Marshal.WriteInt32(ptr, 2, (int)sval); Twain.GlobalUnlock(this.Handle); }
/* * public TwCapability(TwCap cap, short sval) * { * Cap = (short)cap; * ConType = (short)TwOn.One; * Handle = Twain.GlobalAlloc(0x42, 6); * IntPtr pv = Twain.GlobalLock(Handle); * Marshal.WriteInt16(pv, 0, (short)TwType.Int16); * Marshal.WriteInt32(pv, 2, (int)sval); * Twain.GlobalUnlock(Handle); * } */ public TwCapability(TwCap cap, TwFix32 val) { Cap = (short)cap; ConType = (short)TwOn.One; Handle = Twain.GlobalAlloc(0x42, 6); IntPtr pv = Twain.GlobalLock(Handle); Marshal.WriteInt16(pv, 0, (short)TwType.UInt16); Marshal.WriteInt32(pv, 2, (int)val.Whole); Marshal.WriteInt64(pv, 4, (long)val.Whole); Twain.GlobalUnlock(Handle); }
/// <summary> /// Initializes a new instance of the <see cref="TwCapability"/> class. /// </summary> /// <param name="cap">The cap.</param> /// <param name="array">The array.</param> /// <param name="arrayValue">The array value.</param> public TwCapability(TwCap cap, _TwArray array, object[] arrayValue) { this.Cap = cap; this.ConType = TwOn.Array; this.Handle = Twain32.GlobalAlloc(0x42, Marshal.SizeOf(typeof(_TwArray)) + (Marshal.SizeOf(arrayValue[0]) * arrayValue.Length)); IntPtr _pTwArray = Twain32.GlobalLock(Handle); Marshal.StructureToPtr(array, _pTwArray, true); for (int i = 0, _ptr = _pTwArray.ToInt32() + Marshal.SizeOf(typeof(_TwArray)); i < arrayValue.Length; i++, _ptr += Marshal.SizeOf(arrayValue[0])) { Marshal.StructureToPtr(arrayValue[i], (IntPtr)_ptr, true); } Twain32.GlobalUnlock(Handle); }
/// <summary> /// Initializes a new instance of the <see cref="TwCapability"/> class. /// </summary> /// <param name="cap">The cap.</param> /// <param name="enumeration">The enumeration.</param> /// <param name="enumerationValue">The enumeration value.</param> public TwCapability(TwCap cap, _TwEnumeration enumeration, object[] enumerationValue) { this.Cap = cap; this.ConType = TwOn.Enum; this.Handle = Twain32.GlobalAlloc(0x42, Marshal.SizeOf(typeof(_TwEnumeration)) + (Marshal.SizeOf(enumerationValue[0]) * enumerationValue.Length)); IntPtr _pTwEnumeration = Twain32.GlobalLock(Handle); Marshal.StructureToPtr(enumeration, _pTwEnumeration, true); for (int i = 0, _ptr = _pTwEnumeration.ToInt32() + Marshal.SizeOf(typeof(_TwEnumeration)); i < enumerationValue.Length; i++, _ptr += Marshal.SizeOf(enumerationValue[0])) { Marshal.StructureToPtr(enumerationValue[i], (IntPtr)_ptr, true); } Twain32.GlobalUnlock(Handle); }
/// <summary> /// Initializes a new instance of the <see cref="TwCapability"/> class. /// </summary> /// <param name="cap">The cap.</param> /// <param name="value">The value.</param> /// <param name="type">The type.</param> public TwCapability(TwCap cap, int value, TwType type) { this.Cap = cap; this.ConType = TwOn.One; _TwOneValue _value = new _TwOneValue() { ItemType = type, Item = value }; this.Handle = Twain32.GlobalAlloc(0x42, Marshal.SizeOf(typeof(_TwOneValue))); IntPtr _pTwOneValue = Twain32.GlobalLock(Handle); Marshal.StructureToPtr(_value, _pTwOneValue, true); Twain32.GlobalUnlock(Handle); }
public bool SetPaperSource() { bool flag = false; if (twSession.defaultScannerName.ToLower().Contains("kodak")) { capId = TwCap.CAP_PAPERSOURCE; TwType type = capType; CapInfo tmpCap = new CapInfo(); tmpCap.capId = capId; tmpCap.capType = capType; tmpCap.currentIntStr = currentIntStr; flag = twSession.SetCapability(tmpCap); capId = TwCap.ECAP_PAPERSOURCE; } return(flag); }
/// <summary> /// /// </summary> /// <param name="cap"></param> /// <param name="str">Maximum 255 ASCII chars</param> /// <param name="typ"></param> public TwCapability(TwCap cap, string str, TwType typ) { Cap = (short)cap; ConType = (short)TwOn.One; Handle = Twain.GlobalAlloc(0x42, 258); IntPtr pv = Twain.GlobalLock(Handle); Marshal.WriteInt16(pv, 0, (short)typ); int j; for (j = 0; j < Math.Min(str.Length - 1, 255); j++) { Marshal.WriteByte(pv, 2 + j, (byte)(int)str[j]); } Marshal.WriteByte(pv, 2 + j, (byte)0); Twain.GlobalUnlock(Handle); }
/// <summary> /// 更新配置界面,不更新空白页阈值 /// </summary> /// <param name="beginPos"></param> private void UpdateConfigUi(int beginPos, int endPos) { initFinishedFlag = false; //1:设置通用能力 for (int i = beginPos; i < endPos; i++) { // 设置当前值 TwCap capId = capList[i]; twSession.ReadScannerCap(capId); CapInfo capInfo = twSession.GetScannerCap(capId); Control control = capToControl[capId] as Control; // 根据能力值设置控件能力范围 InitControl(control, capInfo); // 设置控件当前值 SetCurrentValue(control, capInfo); if (capId == TwCap.ECAP_PAPERSOURCE) { ECAP_PAPERSOURCE.IsEnabled = capInfo.hasPlaten; } } initFinishedFlag = true; }
// // Summary: // Sets the value for the specified Saraff.Twain.TwCap // // Parameters: // Capability: // Enumeration value Saraff.Twain.TwCap. // // CapabilityValue: // Set value. // // Exceptions: // Saraff.Twain.TwainException: // Raised when an error occurs during the operation. public void SetCap(TwCap capability, Twain32.Enumeration capabilityValue);
// // Summary: // Returns flags indicating the supported data source operations // For the specified capability. // // Parameters: // Capability: // Value perechisdeniya TwCap. // // Returns: // Set of flags. // // Exceptions: // Saraff.Twain.TwainException: // Raised when an error occurs during the operation. public TwQC IsCapSupported(TwCap capability);
// // Summary: // Sets the value for the specified Saraff.Twain.TwCap // // Parameters: // Capability: // Enumeration value Saraff.Twain.TwCap. // // CapabilityValue: // Set value. // // Exceptions: // Saraff.Twain.TwainException: // Raised when an error occurs during the operation. public void SetCap(TwCap capability, object [] capabilityValue);
/// <summary> /// Возвращает флаги, указывающие на поддерживаемые источником данных операции, для указанного значения capability. /// </summary> /// <param name="capability">Значение перечисдения TwCap.</param> /// <returns>Набор флагов.</returns> /// <exception cref="TwainException">Возбуждается в случае возникновения ошибки во время операции.</exception> public TwQC IsCapSupported(TwCap capability) { if((this._TwainState&StateFlag.DSOpen)!=0) { using(TwCapability _cap=new TwCapability(capability)) { TwRC _rc=this.DsCap(this._appid,this._srcds,TwDG.Control,TwDAT.Capability,TwMSG.QuerySupport,_cap); if(_rc==TwRC.Success) { return (TwQC)((_TwOneValue)_cap.GetValue()).Item; } else { return 0; } } } else { throw new TwainException("Источник данных не открыт."); } }
// // Summary: // Returns the value for the specified capability (opportunity). // // Parameters: // Capability: // Enumeration value TwCap. // // Returns: // Depending on the value of capability, can be returned: value type, // Array, Saraff.Twain.Twain32.Range, Saraff.Twain.Twain32.Enumeration. // // Exceptions: // Saraff.Twain.TwainException: // Raised when an error occurs during the operation. public object GetCap(TwCap capability);
/// <summary> /// 读取配置文件 /// </summary> /// <returns></returns> private bool LoadSettings() { try { //一:读取默认扫描仪名称 string scannerName = defaultScannerName; //检查扫描仪名称是否存在 if (scannerName == null) { logger.Debug("没有选择扫描仪"); return(false); } //二:根据扫描仪名称读取节点配置 XmlNodeList scannerNodeList = doc.SelectNodes(ConstCommon.scannerConfigXpath); //1:获得具有指定名称的配置节点 XmlNode scannerNode = GetScannerSettins(scannerName, scannerNodeList); //1.1:如果不存在则返回 if (scannerNode == null) { logger.Debug("指定的扫描仪没有配置"); return(true); } //2:读取节点能力配置列表 else { XmlNodeList scannerChildList = scannerNode.ChildNodes; if (scannerChildList[1] != null) { XmlNodeList capNodeList = scannerChildList[1].ChildNodes; for (int j = 0; j < capNodeList.Count; j++) { XmlElement xmlElement = capNodeList[j] as XmlElement; //2.1 获取节点数值 string capName = xmlElement.Name; string capType = xmlElement.GetAttribute("Itemtype"); string capValue = xmlElement.GetAttribute("Item"); //2.2 生成oneValueItem对象 TwCap capID = ((TwCap)Enum.Parse(typeof(TwCap), capName)); TwType dataType = (TwType)Enum.Parse(typeof(TwType), capType); TwOneValue oneValue = new TwOneValue(dataType, capValue); //2.4 记录扫描能力 userSettings[capID] = oneValue; } } } } #region 异常处理 catch (System.Xml.XPath.XPathException e) { logger.Error("配置文件读取失败:" + e.Message); return(false); } catch (ArgumentException e) { logger.Error("配置文件读取失败:" + e.Message); return(false); } #endregion return(true); }
public TwainCapability(TwainDevice twain, TwIdentity dataSourceId, TwCap capType) { fTwain = twain; fDataSourceId = dataSourceId; fCapType = capType; fValueType = TwType.DontCare16; TwCapability cap = new TwCapability(capType); if(fTwain.GetDataSourceAvailableCapabilityValues(dataSourceId, cap)) { fValueType = cap.GetValueType(); Items = new List<object>(); int numItems = cap.GetNumItems(); for(int i = 0; i < numItems; i++) { Items.Add(cap.GetItem(i)); } MinValue = cap.GetMinValue(); MaxValue = cap.GetMaxValue(); StepSize = cap.GetStepSize(); fCurrentValue = cap.GetCurrentValue(); } }
/// <summary> /// Gets the capability. /// </summary> /// <typeparam name="T">Type of a capability value.</typeparam> /// <param name="capability">The capability.</param> /// <returns>Instance of XDs class.</returns> public XCapability <T> GetCapability <T>(TwCap capability) { return(XCapability <T> .Create(this, capability)); }
public IntPtr contentValuePtr; //数据类型所指向的句柄 public TwCapability(TwCap capID) { this.capID = capID; this.contentType = TwOn.DontCare; this.contentValuePtr = IntPtr.Zero; }
public CapabilityAttribute(TwCap cap) { this.Cap = cap; }
public Capability(Twain32 twain, TwCap cap) { this._Twain32 = twain; this._Cap = cap; }
// TW_CAPABILITY public TwCapability( TwCap cap ) { Cap = (short) cap; ConType = -1; }
public TwCapability(TwCap cap) : this(cap, TwType.DontCare16, null) { }
/// <summary> /// Возвращает значение для указанного capability (возможность). /// </summary> /// <param name="capability">Значение перечисления TwCap.</param> /// <returns>В зависимости от значение capability, могут быть возвращены: тип-значение, массив, <see cref="Twain32.Range">диапазон</see>, <see cref="Twain32.Enumeration">перечисление</see>.</returns> /// <exception cref="TwainException">Возбуждается в случае возникновения ошибки во время операции.</exception> public object GetCap(TwCap capability) { if((this._TwainState&StateFlag.DSOpen)!=0) { using(TwCapability _cap=new TwCapability(capability)) { TwRC _rc=this.DsCap(this._appid,this._srcds,TwDG.Control,TwDAT.Capability,TwMSG.Get,_cap); if(_rc==TwRC.Success) { switch(_cap.ConType) { case TwOn.One: _TwOneValue _one_val=(_TwOneValue)_cap.GetValue(); return Twain32._Convert(_one_val.Item,_one_val.ItemType); case TwOn.Range: return Range.CreateRange((_TwRange)_cap.GetValue()); case TwOn.Array: case TwOn.Enum: object _val=_cap.GetValue(); TwType _item_type=(TwType)_val.GetType().GetProperty("ItemType").GetValue(_val,null); object[] _result_array=new object[(int)_val.GetType().GetProperty("NumItems").GetValue(_val,null)]; object _items=_val.GetType().GetProperty("ItemList").GetValue(_val,null); MethodInfo _items_getter=_items.GetType().GetMethod("GetValue",new Type[]{typeof(int)}); for(int i=0;i<_result_array.Length;i++) { _result_array[i]=Twain32._Convert(_items_getter.Invoke(_items,new object[] { i }),_item_type); } if(_cap.ConType==TwOn.Array) { return _result_array; } else { return Enumeration.CreateEnumeration( _result_array, (int)_val.GetType().GetProperty("CurrentIndex").GetValue(_val,null), (int)_val.GetType().GetProperty("DefaultIndex").GetValue(_val,null)); } } return _cap.GetValue(); } else { throw new TwainException(this._GetStatus()); } } } else { throw new TwainException("Источник данных не открыт."); } }
// // Summary: // Sets the value for the specified Saraff.Twain.TwCap // // Parameters: // Capability: // Enumeration value Saraff.Twain.TwCap. // // CapabilityValue: // Set value. // // Exceptions: // Saraff.Twain.TwainException: // Raised when an error occurs during the operation. public void SetCap(TwCap capability, Twain32.Range capabilityValue);
public bool SetDataSourceCapability(TwIdentity dataSourceId, TwCap capType, TwType valueType, object value) { TwCapability cap = new TwCapability(capType, valueType, value); return SetDataSourceCapability(dataSourceId, cap); }
/// <summary> /// Initializes a new instance of the <see cref="TwCapability"/> class. /// </summary> /// <param name="cap">The cap.</param> public TwCapability(TwCap cap) { this.Cap = cap; this.ConType = TwOn.DontCare; }
public object GetDataSourceCapability(TwIdentity dataSourceId, TwCap capType) { object result = null; TwCapability cap = new TwCapability(capType); if(GetDataSourceCapability(dataSourceId, cap)) { result = cap.GetCurrentValue(); } return result; }
public TwCapability(TwCap cap, short sval, TwType twtype) { }
{ // TW_CAPABILITY public TwCapability(TwCap cap) { Cap = (short)cap; ConType = -1; }
/// <summary> /// Устанавливает значение для указанного <see cref="TwCap">capability</see> /// </summary> /// <param name="capability">Значение перечисления <see cref="TwCap"/>.</param> /// <param name="capabilityValue">Устанавливаемое значение.</param> /// <exception cref="TwainException">Возбуждается в случае возникновения ошибки во время операции.</exception> public void SetCap(TwCap capability,object[] capabilityValue) { if((this._TwainState&StateFlag.DSOpen)!=0) { using(TwCapability _cap=new TwCapability( capability, new _TwArray() { ItemType=Twain32._Convert(capabilityValue[0].GetType()), NumItems=capabilityValue.Length }, capabilityValue)) { TwRC _rc=this.DsCap(this._appid,this._srcds,TwDG.Control,TwDAT.Capability,TwMSG.Set,_cap); if(_rc!=TwRC.Success) { throw new TwainException(this._GetStatus()); } } } else { throw new TwainException("Источник данных не открыт."); } }
private Capability <T> CreateCapability <T>(Twain32 twain, TwCap cap) where T : struct { return(Activator.CreateInstance(typeof(Capability <T>), new object[] { twain, cap }) as Capability <T>); }
public TwCapability(TwCap cap, TwType valueType, object value) { CapabilityType = cap; ContainerType = TwOn.One; value = CastFromCapabilityType(value); TwOneValue container = new TwOneValue(valueType, value); Handle = LibKernel32.GlobalAlloc(0x42, Marshal.SizeOf(container)); try { IntPtr pv = LibKernel32.GlobalLock(Handle); Marshal.StructureToPtr(container, pv, true); } finally { LibKernel32.GlobalUnlock(Handle); } }
/// <summary> /// Устанавливает значение для указанного <see cref="TwCap">capability</see> /// </summary> /// <param name="capability">Значение перечисления <see cref="TwCap"/>.</param> /// <param name="capabilityValue">Устанавливаемое значение.</param> /// <exception cref="TwainException">Возбуждается в случае возникновения ошибки во время операции.</exception> public void SetCap(TwCap capability,Range capabilityValue) { if((this._TwainState&StateFlag.DSOpen)!=0) { using(TwCapability _cap=new TwCapability(capability,capabilityValue.ToTwRange())) { TwRC _rc=this.DsCap(this._appid,this._srcds,TwDG.Control,TwDAT.Capability,TwMSG.Set,_cap); if(_rc!=TwRC.Success) { throw new TwainException(this._GetStatus()); } } } else { throw new TwainException("Источник данных не открыт."); } }
public TwCapability( TwCap cap, short sval ) { Cap = (short) cap; ConType = (short) TwOn.One; Handle = Twain.GlobalAlloc( 0x42, 6 ); IntPtr pv = Twain.GlobalLock( Handle ); Marshal.WriteInt16( pv, 0, (short) TwType.Int16 ); Marshal.WriteInt32( pv, 2, (int) sval ); Twain.GlobalUnlock( Handle ); }
/// <summary> /// Устанавливает значение для указанного <see cref="TwCap">capability</see> /// </summary> /// <param name="capability">Значение перечисления <see cref="TwCap"/>.</param> /// <param name="capabilityValue">Устанавливаемое значение.</param> /// <exception cref="TwainException">Возбуждается в случае возникновения ошибки во время операции.</exception> public void SetCap(TwCap capability,Enumeration capabilityValue) { if((this._TwainState&StateFlag.DSOpen)!=0) { using(TwCapability _cap=new TwCapability( capability, new _TwEnumeration() { ItemType=Twain32._Convert(capabilityValue.Items[0].GetType()), NumItems=capabilityValue.Count, CurrentIndex=capabilityValue.CurrentIndex, DefaultIndex=capabilityValue.DefaultIndex }, capabilityValue.Items)) { TwRC _rc=this.DsCap(this._appid,this._srcds,TwDG.Control,TwDAT.Capability,TwMSG.Set,_cap); if(_rc!=TwRC.Success) { throw new TwainException(this._GetStatus()); } } } else { throw new TwainException("Источник данных не открыт."); } }