C#使用Twain協(xié)議開發(fā)一個(gè)高掃儀對(duì)接功能
請(qǐng)先安裝TwainDotNet
實(shí)現(xiàn)代碼
private static AreaSettings AreaSettings = new AreaSettings(Units.Centimeters, 0.1f, 5.7f, 0.1F + 2.6f, 5.7f + 2.6f); Twain _twain; ScanSettings _settings; public ScanForm(string tName, string cNumber, List<string> names, CaseSelectForm form) { InitializeComponent(); try { SelectForm = form; this.DoubleBuffered = true;//設(shè)置本窗體 SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景. SetStyle(ControlStyles.DoubleBuffer, true); // 雙緩沖 myNames = names; _typeName = tName; _caseNumber = cNumber; this.Text = "掃描文件 - " + tName + " - " + cNumber; _twain = new Twain(new WinFormsWindowMessageHook(this)); _twain.TransferImage += delegate (Object sender, TransferImageEventArgs args) { if (args.Image != null) { Bitmap image = new Bitmap(args.Image); string temp = DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".jpg"; //緩存圖片到磁盤 string path = tempPath + temp; image.Save(path, ImageFormat.Jpeg); tempPicUrl.Add(path); var resizeImg = ImageHelper.KiResizeImage(image, 0.2f); //緩存圖片到磁盤 string path2 = resizePath + temp; resizeImg.Save(path2, ImageFormat.Jpeg); //scanImages.Add(image); imageList1.Images.Add(image); image.Dispose(); } args.Image.Dispose(); }; _twain.ScanningComplete += delegate { for (int i = LastScanCount; i < imageList1.Images.Count; i++) { ListViewItem li = new ListViewItem(); li.Text = i.ToString(); li.ImageIndex = i; mlistview_Image.Items.Add(li); ImageStateModels.Add(new ImageStateModel { Checked = false, Person = "無", tempPicUrl = tempPicUrl[i], Name = i.ToString() }); } LastScanCount = ImageStateModels.Count; mlbl_PageCount.Text = string.Format("本次掃描 {0} 頁", ImageStateModels.Count); Enabled = true; this.Activate(); this.WindowState = FormWindowState.Maximized; }; // ocr = new TesseractEngine("./tessdata", "chi_sim"); InitInfo(); InitCut(); InitSearch(); InitWords(); DeleteFileByDir(); InitMatchImg(); } catch (Exception ex) { log4netHelper.Error("---報(bào)錯(cuò)方法--ScanForm"); log4netHelper.Error(ex.Message); log4netHelper.Error(ex.StackTrace); log4netHelper.Error(ex.ToString()); log4netHelper.Error("---end---"); MessageBox.Show("請(qǐng)檢查設(shè)備是否開啟或者鏈接!"); } } private void Init() { try { mcb_userName.DataSource = myNames; mtbPage_Set.SelectedIndex = 0; string savetype = ConfigHelper.ReadConfigPath("savetype.txt"); if (savetype.Trim() == "1") { mcBox_savetype.Text = ".jpg"; } else if (savetype.Trim() == "0") { mcBox_savetype.Text = ".PDF"; } _saveType = savetype; } catch (Exception ex) { log4netHelper.Error("---報(bào)錯(cuò)方法--Init"); log4netHelper.Error(ex.Message); log4netHelper.Error(ex.StackTrace); log4netHelper.Error(ex.ToString()); log4netHelper.Error("---end---"); } }
到此這篇關(guān)于C#使用Twain協(xié)議開發(fā)一個(gè)高掃儀對(duì)接功能的文章就介紹到這了,更多相關(guān)C# Twain開發(fā)高掃儀對(duì)接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用XSLT實(shí)現(xiàn)xsl、xml與html相互轉(zhuǎn)換
這篇文章介紹了C#使用XSLT實(shí)現(xiàn)xsl、xml與html相互轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06Unity ScrollView實(shí)現(xiàn)自動(dòng)吸附效果
這篇文章主要為大家詳細(xì)介紹了Unity ScrollView實(shí)現(xiàn)自動(dòng)吸附效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07C#實(shí)現(xiàn)查殺本地與遠(yuǎn)程進(jìn)程的方法
這篇文章主要介紹了C#實(shí)現(xiàn)查殺本地與遠(yuǎn)程進(jìn)程的方法,可實(shí)現(xiàn)針對(duì)特定進(jìn)程的關(guān)閉操作,是C#進(jìn)程操作的一個(gè)典型應(yīng)用,需要的朋友可以參考下2014-12-12C#并發(fā)實(shí)戰(zhàn)記錄之Parallel.ForEach使用
這篇文章主要給大家介紹了關(guān)于C#并發(fā)實(shí)戰(zhàn)記錄之Parallel.ForEach使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08C#使用正則表達(dá)式實(shí)現(xiàn)漢字轉(zhuǎn)拼音
這篇文章主要為大家詳細(xì)介紹了C#如何使用正則表達(dá)式實(shí)現(xiàn)漢字轉(zhuǎn)拼音的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01