using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Configuration; using Saraff.Twain; using HXX.Scanner.Common; namespace HXX.Scanner.Biz { /// /// 老类,从扫描仪读取基础信息到内存 /// internal class biz_property_engine_to_scanner { public static void Set(Twain32 engine, Device_Scanner scanner) { try { loadScannerProperty(scanner); } catch (Exception ee) { LogManager.WriteLog(ee); } } /// /// 把各扫描仪信息读取到config /// /// private static void loadScannerProperty(Device_Scanner scanner) { try { String manufacturer = scanner.manufacturer; String config = ""; if (manufacturer.Contains("CANON")) { //config = Properties.Settings.Default.CannonConfig; config = config_manager.Get("CannonConfig"); //TODO } else if (manufacturer.Contains("Panasonic")) { //config = Properties.Settings.Default.PanasonicConfig; config = config_manager.Get("PanasonicConfig"); } else if (manufacturer.Contains("Kodak"))//Eastman Kodak { //config = Properties.Settings.Default.KodakConfig; config = config_manager.Get("KodakConfig"); } else if (manufacturer.ToUpper().Contains("EPSON")) { //config = Properties.Settings.Default.PanasonicConfig; config = config_manager.Get("PanasonicConfig"); } else if (manufacturer.ToUpper().Contains("HP")) { //config = Properties.Settings.Default.PanasonicConfig; config = config_manager.Get("PanasonicConfig"); } else if (manufacturer.ToUpper().Contains("HUAGO")) { //config = Properties.Settings.Default.PanasonicConfig; config = config_manager.Get("PanasonicConfig"); } if (config != null && config.Length > 0) { string[] configItems = config.Split(';'); foreach (string configItem in configItems) { string[] configItemArr = configItem.Split('='); if (configItemArr.Length == 2) { if (configItemArr[0].Equals("ld")) { int ld = Int32.Parse(configItemArr[1]); scanner.ld = ld; } if (configItemArr[0].Equals("dbd")) { scanner.dbd = Int32.Parse(configItemArr[1]); } //if (configItemArr[0].Equals("zz")) //{ // scanner.setPaperSize(get_paper_byIndex(Int32.Parse(configItemArr[1]))); //} if (configItemArr[0].Equals("dpi")) { scanner.resolution = Int32.Parse(configItemArr[1]); } } }; } } catch (Exception ee) { LogManager.WriteLog(ee); } } //public static void Set(Twain32 engine, Device_Scanner scanner) //{ // scanner.openSourceReady = false; // if (config_environment.useTwain) // { // try // { // engine.CloseDataSource(); // engine.SourceIndex = scanner.dsIndex; // if (engine.OpenDataSource()) // { // //scanner_manager.set_current(scanner.dsIndex); // scanner.Brightness = engine.Capabilities.Brightness.Get(); // scanner.BrightnessBaseIndex = (scanner.Brightness.Count - 1) / 2; // scanner.Contrasts = engine.Capabilities.Contrast.Get(); // scanner.ContrastsBaseIndex = (scanner.Contrasts.Count - 1) / 2; // loadScannerProperty(scanner); // } // } // catch (TwainException te) // { // LogManager.WriteLog(te); // MsgManager.Error(biz_twainException.showTwainException(te)); // } // catch (Exception ee) // { // LogManager.WriteLog(ee); // } // } //} //private static void loadScannerProperty(Device_Scanner scanner) //{ // try // { // String manufacturer = scanner.manufacturer; // String config = ""; // if (manufacturer.Contains("CANON")) // { // //config = Properties.Settings.Default.CannonConfig; // config = config_manager.Get("CannonConfig"); // //TODO // } // else if (manufacturer.Contains("Panasonic")) // { // //config = Properties.Settings.Default.PanasonicConfig; // config = config_manager.Get("PanasonicConfig"); // } // else if (manufacturer.Contains("Kodak"))//Eastman Kodak // { // //config = Properties.Settings.Default.KodakConfig; // config = config_manager.Get("KodakConfig"); // } // if (config != null && config.Length > 0) // { // string[] configItems = config.Split(';'); // foreach (string configItem in configItems) // { // string[] configItemArr = configItem.Split('='); // if (configItemArr.Length == 2) // { // if (configItemArr[0].Equals("ld")) // { // int ld = Int32.Parse(configItemArr[1]); // scanner.ld = ld; // } // if (configItemArr[0].Equals("dbd")) // { // scanner.dbd = Int32.Parse(configItemArr[1]); // } // if (configItemArr[0].Equals("zz")) // { // scanner.setPaperSize(get_paper_byIndex(Int32.Parse(configItemArr[1]))); // } // } // }; // } // } // catch (Exception ee) // { // LogManager.WriteLog(ee); // } //} //public static string get_paper_byIndex(int index) //{ // var group = new List() { "A4", "A3", "16开", "8开" }; // if (index >= 0 && index < group.Count) // { // return group[index]; // } // else // { // return string.Empty; // } //} } }