bb5059619

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

最近因为项目需要,接触到Winform中的扫描仪功能,在网上查了一些资料,终于算是把这功能给实现了,现把过程描述一遍,希望对某些朋友有所帮助。。。(哦,对了,顺便提一下,我是用了Kodak组件实现的)

1.先从网上下载Kodak组件,总共有十来个.dll .OCX文件,我们只需用到其中的两个就OK了。

2.打开你的项目,先引用IMGEDIT.OCX和IMGSCAN.OCX。(如果引用时有问题,得在“运行”里用命令“regsvr32.exe ”执行一下)。

3.在开始位置引用命名空间:using ScanLibCtl;

4.在工具箱,选择项里添加控件“kodak图像扫描控件”,默认名称是axImgScan1。

5.好了,以上弄好后就可以开始写代码了:

axImgScan1.ShowSelectScanner();//选择扫描仪

int ll_rtn = axImgScan1.OpenScanner(); //打开扫描仪

if (ll_rtn == 0)

{

     if (axImgScan1.ScannerAvailable() == true)//判断扫描仪是否可用

     {

          axImgScan1.MultiPage = true;//是否多页

          axImgScan1.PageCount = axImgScan1.PageCount + 1;

          string pathGen = @"f:/aaa";

          string paths = pathGen+"\\app.path" + "UN";

          axImgScan1.Image = paths;

          axImgScan1.FileType = FileTypeConstants.BMP_Bitmap;//设置文件类型

          axImgScan1.CompressionType = CompressionTypeConstants.JPEG;

          axImgScan1.ScanTo = ScanToConstants.DisplayAndUseFileTemplate;

          axImgScan1.SetPageTypeCompressionOpts(CompPreferenceConstants.GoodDisplay, ImageTypeConstants.BlackAndWhite1Bit, CompTypeConstants.JPEGCompression, CompInfoConstants.G31DFaxRBO);

          axImgScan1.StopScanBox = false;

          axImgScan1.ShowSetupBeforeScan = true;//是否在扫描前显示设置界面

          axImgScan1.Show();

          ll_rtn = axImgScan1.StartScan();//开始扫描

          if (ll_rtn == 9254 || ll_rtn == 0) { }

          else

          {

               MessageBox.Show("扫描仪没有正确连接或扫描控件已破坏,请检查!", "系统提示");

          }

          axImgScan1.CloseScanner(); //关闭扫描仪 }

          else

          {

               MessageBox.Show( "扫描仪没有正确连接,请重新设置!","系统提示");

          }

      }

     else if (ll_rtn == 9219)

     {

          MessageBox.Show("系统没有安装扫描仪或扫描仪没有正确连接!", "系统提示");

     }

posted on 2008-07-29 21:30  binbo_yz  阅读(3462)  评论(2编辑  收藏  举报