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;
// }
//}
}
}