`

C#调用扫描仪(keda控件)

    博客分类:
  • VS
 
阅读更多

1.选择扫描仪

            axImgScan1.ShowSelectScanner();

2.调用扫描仪

                if (axImgScan1.OpenScanner() == 0)
                {
                    if (axImgScan1.ScannerAvailable() == true)//判断扫描仪是否可用
                    {
                        axImgScan1.MultiPage = true;//是否多页
                        axImgScan1.Page = axImgScan1.PageCount + 1;
                        axImgScan1.PageOption = PageOptionConstants.AppendPages;
                        axImgScan1.PageCount = axImgScan1.PageCount + 1;
                        axImgScan1.ScanTo = ScanToConstants.DisplayAndFile;
                        axImgScan1.Scroll = true;
                        //第一次扫前设置扫描仪属性
                        axImgScan1.ShowSetupBeforeScan = true;//是否在扫描前显示设置界面
                        if (File.Exists(imgpaths))
                        {
                            File.Delete(imgpaths);
                        }
                        axImgScan1.Image = imgpaths;
                        axImgScan1.FileType = ScanLibCtl.FileTypeConstants.TIFF;//设置文件类型
                        axImgScan1.CompressionType = ScanLibCtl.CompressionTypeConstants.PackedBits;
                        axImgScan1.StopScanBox = true;
                        axImgScan1.StartScan();//以文件流的形式读取图片文件并释放,以便下一次扫面前删除文件
                        int a = axImgScan1.StatusCode;//扫描状态
                        axImgScan1.StopScan();
                        axImgScan1.CloseScanner();
                        File.Delete(imgpaths);
                        if (a != 0)
                        {
                            Console.WriteLine(a);
                            Console.WriteLine("退出");
                            //break;
                        }
                    }
                    else
                    {
                        MessageBox.Show("扫描仪没有正确连接,请重新设置!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }

 3.当扫完一页后进行的操作

首先要加监听

            this.axImgScan1.PageDone += new AxScanLibCtl._DImgScanEvents_PageDoneEventHandler(AxImgScan1_PageDone);

 下边是扫完当前员操作

        private void AxImgScan1_PageDone(object sender, AxScanLibCtl._DImgScanEvents_PageDoneEvent e)
        {
            try
            {
                string pname = "00000000" + yh_textBox.Text;
                pname = pname.Substring(pname.Length - 3);
                if (!Directory.Exists(directorypath))
                {
                    Directory.CreateDirectory(directorypath);
                }
                string newp = directorypath + pname + ".tif";
                Control.CheckForIllegalCrossThreadCalls = false;
                Thread yht = new Thread(setyh);
                //threads3.Add(t);
                yht.Start();
                System.Drawing.Image img = System.Drawing.Image.FromFile(imgpaths);
                Guid guid = (Guid)img.FrameDimensionsList.GetValue(0);
                FrameDimension dimension = new FrameDimension(guid);
                int totalPage = img.GetFrameCount(dimension);
                img.SelectActiveFrame(dimension, e.pageNumber - 1);
                img.Save(newp, System.Drawing.Imaging.ImageFormat.Tiff);
                img.Dispose();
                this.pictureBox1.ImageLocation = newp;
            }
            catch(Exception ee)
            {
                Console.WriteLine(ee);
            }
        }

 所需命名空间

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using ScanLibCtl;
using System.Text.RegularExpressions;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.Threading;
using Microsoft.Office.Interop.Excel;
using System.Drawing.Imaging;

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics