| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Runtime.InteropServices;
- using System.Threading;
- using System.Drawing.Imaging;
- using System.IO;
- using Dynamsoft.Barcode;
- using Dynamsoft.TWAIN;
- using Dynamsoft.Core;
- using Dynamsoft.UVC;
- using Dynamsoft.OCR;
- using Dynamsoft.PDF;
- using Dynamsoft.Core.Annotation;
- using Dynamsoft.TWAIN.Interface;
- using Dynamsoft.Core.Enums;
- using Dynamsoft.Common;
- using HXX.Scanner.Common;
- using HXX.Scanner.Biz.Socket;
- namespace HXX.Scanner.Biz
- {
- /*
- * 第三方组件,注意product key有过期的问题,倘若过期,扫描出来的图片将带有水印
- */
- /// <summary>
- /// 第三方弹出框扫描
- /// </summary>
- public class biz_pop : IAcquireCallback
- {
- public biz_pop()
- {
- //m_StrProductKey = m_StrProductKey + ";" + LicenseLoader.ReadLocalLicense();
- m_StrProductKey = "123";
- m_TwainManager = new TwainManager(m_StrProductKey);
- }
- //private string m_StrProductKey = "t0068MgAAAGoy8bTO6r8g5EB109cYYCRpr5Ug/nABLQcqkWLVjqs85l2Qa7pNIa/TQDq+d9RHDc7MVYR+5AEiDrFJsUOcqlI=";
- private string m_StrProductKey = "123";
- private TwainManager m_TwainManager = null;
- /// <summary>
- /// 主扫描方法
- /// </summary>
- /// <param name="index"></param>
- public void scan(int index)
- {
- m_TwainManager.CloseSource();
- m_TwainManager.SelectSourceByIndex(index);
- m_TwainManager.OpenSource();
- m_TwainManager.IfShowUI = false;
- m_TwainManager.IfFeederEnabled = true;
- m_TwainManager.IfDuplexEnabled = config_environment.scan_ab;
- m_TwainManager.IfDisableSourceAfterAcquire = true;
- m_TwainManager.XferCount = get_xferCount();
- m_TwainManager.PixelType = Dynamsoft.TWAIN.Enums.TWICapPixelType.TWPT_GRAY;
- m_TwainManager.BitDepth = 8;
- m_TwainManager.Resolution = 150;
- m_TwainManager.AcquireImage(this as IAcquireCallback);
- }
- /// <summary>
- /// 主动关闭自己,方便其他TW组件再次连接
- /// </summary>
- public void close()
- {
- try
- {
- m_TwainManager.CloseSource();
- }
- catch (Exception ee)
- {
- LogManager.WriteLog(ee);
- }
- }
- public bool IfGetImageInfo
- {
- get
- {
- return true;
- }
- }
- public bool IfGetExtImageInfo
- {
- get
- {
- return true;
- }
- }
- /// <summary>
- /// 批次扫描结束事件
- /// </summary>
- public void OnPostAllTransfers()
- {
- twain32_events._twain32_AcquireCompleted(null, null);
- }
- /// <summary>
- /// 单张扫描结束事件
- /// </summary>
- public bool OnPostTransfer(Bitmap bit, string info)
- {
- try
- {
- var fileInfo = file_manager.get_file_info2();
- var file = fileInfo.file_full_name.Replace("bmp", "jpeg");
- bit.Save(file, ImageFormat.Jpeg);
- if (config_environment.scan_state)
- {
- biz_scanHistory.add_history();
- file_manager.save(file);
- }
- }
- catch (Exception ex)
- {
- LogManager.WriteLog(ex);
- }
- return true;
- }
- /// <summary>
- /// 批次扫描开始前事件
- /// </summary>
- public void OnPreAllTransfers()
- {
- var nn = m_TwainManager.Duplex;
- biz_engine_prepare.prepare();
- }
- /// <summary>
- /// 单张扫描开始前事件
- /// </summary>
- public bool OnPreTransfer()
- {
- return true;
- }
- /// <summary>
- /// 弹框被关闭事件
- /// </summary>
- public void OnSourceUIClose()
- {
-
- }
- /// <summary>
- /// 弹框点取消后事件
- /// </summary>
- public void OnTransferCancelled()
- {
- biz_scanHistory.end_new();
- biz_scanFinishBatch.Work(2, true);
- //config_environment.stop_status = 2;
- biz_scanFinish.Work(null, new ResponseEntity<response_http_uploadImg2>() { Status = 0, Message = "扫描被中止" });
- biz_scanFinishBatch.Work(7, false);
- biz_scanFinishBatch.Work(1, false);
- }
- /// <summary>
- /// 数据传输错误事件
- /// </summary>
- public void OnTransferError()
- {
- config_environment.scan_state = false;
- biz_scanHistory.end_new();
- biz_scanFinish.Work(null, new ResponseEntity<response_http_uploadImg2>() { Status = 0, Message = "发生错误" });
- biz_scanFinishBatch.Work(3, true);
- }
- /// <summary>
- /// 获取扫描数量上限 1:1张 2:2张 -1:无限
- /// </summary>
- private static short get_xferCount()
- {
- if (config_environment.scan_type == ScanType.Formal)
- {
- return -1;
- }
- else
- {
- if (config_environment.scan_ab)
- {
- return 2;
- }
- else
- {
- return 1;
- }
- }
- }
- }
- }
|