精华内容
下载资源
问答
  • scan扫描仪控件

    2018-08-14 10:10:57
    web扫描仪控件实例代码,可以在web页面上直接调用扫描仪进行扫描。并且在页面上显示图片,生成pdf文档。非常强大的一款控件。
  • ScanOnWeb扫描仪控件使用说明。帮助使用扫描仪、高拍仪。
  • OopsTwain扫描仪控件

    2011-03-05 21:41:48
    TOopsTwain 4.0 扫描仪控件 Delphi VCL 直接建立工程,把VCL内的PAS加入,运行下就可以
  • TOopsTwain 扫描仪控件

    2009-03-23 17:15:30
    这是一个扫描仪控件,TOopsTwain
  • imgscan与imgedit控件 扫描仪控件
  • ScanOnWeb扫描仪控件用于处理web编程中的图像扫描及编辑处理问题,现在整理使用注意事项: 1.通过javascript控制扫描仪扫描图像的方法是scan方法,扫描过程根据设定的DPI精度,将来保存数据时的大小也不相同。 2....
    ScanOnWeb扫描仪控件用于处理web编程中的图像扫描及编辑处理问题,现在整理使用注意事项:
    1.通过javascript控制扫描仪扫描图像的方法是scan方法,扫描过程根据设定的DPI精度,将来保存数据时的大小也不相同。
    2.取扫描结果并提交到服务器端编程语言如jsp,asp,php,asp.net前先获取扫描结果数据,取单页结果数据可以通过读取jpg格式属性或读取bmp格式属性数据。
    3.多页扫描数据提交到服务器端前可以按pdf格式取出数据内容。
    4.最新版本ScanOnWeb控件可以在百度里面找到。
    展开全文
  • 扫描仪控件 OopsTwain

    2006-01-13 09:51:35
    封装了 TWAIN 协议的 Delphi VCL。让您的应用程序直接通过TWAIN接口轻松访问扫描仪,不需要其他 OCX。该版本已经完善了 TWAIN 的三种主要传输方式,开放源代码。有关TWAIN的详细内容,请访问 http://www.twain.org/
  • 在网上找kadao方面的方法,好多网站都要收费,太不象话,具体使用方法代码中有。
  • 可让你的程序轻松的通过扫描仪获得图象的控件(for ;;;Delphi3,4,5)。<;;;br>;;; <;;;br>;;;
  • 本源代码包括:TestJTwain.java,ScanTwice.java,DemoFrame.java,DemoADF.java,DemoFrame.java,DemoGetCapabilities.java,DemoHiddenUI.java,ImageDisplayer.java,DemoSaveJPEG.java等等一系列扫描仪功能,...
  • 基于JAVAEE的B/S架构由于java语言的跨平台性 所以操控Window客户端资源能力有限, 目前比较流行是用其他语言如Delphi,VB,C++开发客户端控件 ...统观现在的在线扫描控件,大部分都是收费的,无论国内还是国外。...
    基于JAVAEE的B/S架构由于java语言的跨平台性
    所以操控Window客户端资源能力有限,
    目前比较流行是用其他语言如Delphi,VB,C++开发客户端控件
    然后再html中用js调用。
    但对于java开发者而言,这种方式比较不方便,尤其在分工合作
    而对方开发水平也有限的情况下,调试比较繁琐。
    统观现在的在线扫描控件,大部分都是收费的,无论国内还是国外。
    收费,代码不可见应该是JAVA程序员比较反感的吧,总感觉受制于人,至少我是这样的啊。

    Applet现在虽然不流行被ActiveX所替代,但对java程序员开发B/S架构
    需要操纵客户端资源,还是比较可行的。
    尤其是在HtmlConvert的出现后,其编程方式可以把Applet标签转换成
    object标签。

    虽说需要客户端下载并安装JRE,下载速度比较慢,但由于是在企业级应用的局域网的
    环境下,这些并不是最大的缺点。(现在jre可以通过cab包的形式在客户端自动下载及安装jre,通过改变url让此cab在局域网内下载
    html中如下:<object
    classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
    codebase = "http://localhost:8090/emr-archive-app/arc/cabs/jinstall-1_5-windows-i586.cab#Version=5,0,0,5"
    WIDTH = "240" VSPACE = "20" ALT = "Sorry" >
    <PARAM NAME = CODE VALUE = "com.founder.applet.scan.ScannerApplet.class" >
    <PARAM NAME = ARCHIVE VALUE = "scanner.jar" >
    <param name = "type" value = "application/x-java-applet;version=1.5">
    <param name = "scriptable" value = "false">
    </object>)

    目前所做的项目是基于JAVA EE的应用,需要在客户端进行文档扫描并提交到客户端
    进行进一步处理,如进行OCR文字识别,建立基于内容检索的索引创建等应用。

    目前能用的反应普遍比较好的是ScanOnWeb控件,做到确实比较好,好处就不再细说。,
    但我试用完后发现的缺点如下:
    1.收费,虽说不贵,但对比较大的管理规范的公司,由于售后服务产品保障方面,购买审批难。
    2.通用性并不好,同样是遵循Twain协议的扫描仪器,有的扫描仪并不能很好的识别
    我用的摄像头,带独立电源的Microtek,和USB供电的Canon进行测试
    其中的最新的Canon他无法识别,需要先进入控件的界面然后再插上扫描仪,如果一直
    连着扫描仪,将报错。
    3.扫描的文件太大了,普通的一页纸张可以达到2M。

    由于目前的扫描仪或者摄像头都支持Twain协议,同时也有一个开源的mmsc_tawin工java开发者使用
    所以开发基于Applet的扫描仪控件是可行的。

    开发步骤如下:
    1.基于mmsc_twain开发扫描Applet
    2.把mmsc_twain的jar包及相关依赖的jar包中class按
    包的结构解压到一个目录下。
    3.把这些class打包成一个jar包
    3.对这个jar包进行数字签名
    4.通过html_conv把html中的applet标签,转换成object
    通过以上步骤即可完成在线扫描的控件。
    下面代码是通过applet及servlet把扫描的文件
    转成PDF格式然后上传到web服务器,进行进一步的文字识别
    及基于内容检索。

    经过测试,基于applet的在线扫描的优点是硬件识别率高,扫描的文件小,速度快,秉承b/s架构易于维护特性,对java开着者而言最重要的是灵活,
    可以自由控制。
    缺点也比较明显就是对扫描的文件不能像scanOnWeb那样进行图像的进一步处理。但对于只是简单的纸质文档扫描的应用来说这并不是应用的重点。
    如果有需要比较完整的代码的可以继续交流。
    ======================================================================
    代码参考如下:

    (htmlConvert,及jar包的数字签名,mmsc_twain的源码网上都可以找到)
    测试代码如下:
    import java.applet.Applet;
    import java.awt.Button;
    import java.awt.Graphics;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.image.BufferedImage;
    import java.awt.print.PrinterException;
    import java.io.BufferedWriter;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLConnection;

    import javax.imageio.ImageIO;

    import org.apache.pdfbox.pdmodel.PDDocument;

    import com.lowagie.text.Document;
    import com.lowagie.text.Font;
    import com.lowagie.text.Image;
    import com.lowagie.text.Paragraph;
    import com.lowagie.text.pdf.PdfWriter;

    import uk.co.mmscomputing.device.scanner.Scanner;
    import uk.co.mmscomputing.device.scanner.ScannerDevice;
    import uk.co.mmscomputing.device.scanner.ScannerIOException;
    import uk.co.mmscomputing.device.scanner.ScannerIOMetadata;
    import uk.co.mmscomputing.device.scanner.ScannerListener;

    public class ScannerApplet extends Applet {
    Scanner scanner = Scanner.getDevice();
    public void init() {
    Button btn = new Button();
    btn.setLabel("扫描");
    btn.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
    System.out.println(event.getActionCommand() + "||"
    + event.getSource() + "MouseClick");
    try {
    scan();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    });
    add(btn);
    }

    public void paint(Graphics g) {
    }

    private void scan() throws ScannerIOException {

    scanner.select();
    scanner.addListener(new ScannerListener() {
    public void update(ScannerIOMetadata.Type type,
    ScannerIOMetadata metadata) {
    System.out.println("*********Type:"+type.msg);
    if (type.equals(ScannerIOMetadata.ACQUIRED)) {
    BufferedImage image = metadata.getImage();
    System.out.println("Have an image now!");
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    try {
    ImageIO.write(image, "jpg", os);
    } catch (Exception e) {
    e.printStackTrace();
    }
    // 创建PDF
    ByteArrayOutputStream bop = createPDF(os);

    // 文件上传
    upLoad(bop);
    } else if (type.equals(ScannerIOMetadata.NEGOTIATE)) {
    ScannerDevice device = metadata.getDevice();
    /**
    try {
    device.setShowUserInterface(true);
    device.setShowProgressBar(true);
    device.setResolution(100);
    } catch (Exception e) {
    e.printStackTrace();
    }
    ***/
    } else if (type.equals(ScannerIOMetadata.STATECHANGE)) {
    System.err.println(metadata.getStateStr());
    if (metadata.isFinished()) {
    BufferedImage image = metadata.getImage();
    System.out.println("###//Have an image now!");
    }
    } else if (type.equals(ScannerIOMetadata.EXCEPTION)) {
    metadata.getException().printStackTrace();
    }
    }

    });

    scanner.acquire();
    }

    private ByteArrayOutputStream createPDF(ByteArrayOutputStream os) {
    Document document = new Document();
    ByteArrayOutputStream bop = new ByteArrayOutputStream();
    try {
    PdfWriter.getInstance(document, bop);
    // PdfWriter.getInstance(document,new FileOutputStream(
    // "E:/study/applet/TestPDF.PDF"));
    document.open();

    // Font fnt = new Font();
    // document.add(new Paragraph("load a tif image file"));
    Image img = Image.getInstance(os.toByteArray());
    // img.setWidthPercentage(100);
    document.addAuthor("EmrArchiveApplication");
    document.addCreationDate();
    document.addCreator("iText library");
    document.addTitle("ScannerImg");
    document.add(img);

    // PDDocument pdoc = PDDocument.load(new File(
    // "E:/study/applet/TestPDF.PDF"));
    //
    // pdoc.print();

    } catch (Exception e) {
    System.err.println(e.getMessage());
    }
    document.close();
    return bop;
    }

    private void upLoad(ByteArrayOutputStream pdf) {
    try {
    URLConnection con = getConnection();
    FileOutputStream fo = new FileOutputStream("C:/archive/APT.pdf");

    fo.write(pdf.toByteArray(), 0, pdf.toByteArray().length);
    fo.close();

    OutputStream os = con.getOutputStream();
    DataOutputStream ds = new DataOutputStream(os);
    ds.write(pdf.toByteArray());
    ds.flush();

    // 关闭发送流,提交数据
    ds.close();
    // 调用HttpURLConnection连接对象的getInputStream()函数,
    // 将内存缓冲区中封装好的完整的HTTP请求电文发送到服务端。
    InputStream is = con.getInputStream(); // <===注意,实际发送请求的代码段就在这里

    System.out.println("###EEEEEE");
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }

    private static HttpURLConnection getConnection() throws IOException {
    URL url = new URL(
    "http://127.0.0.1:8090/emr-archive-app/PDFScanerServlet");
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在
    // http正文内,因此需要设为true, 默认情况下是false;
    con.setDoOutput(true);

    // 设置是否从httpUrlConnection读入,默认情况下是true;
    con.setDoInput(true);

    // Post 请求不能使用缓存
    con.setUseCaches(false);

    // 设定传送的内容类型是可序列化的java对象
    // (如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException)
    con.setRequestProperty("Content-Type ", "application/octet-stream ");

    // 设定请求的方法为"POST",默认是GET
    con.setRequestMethod("POST");

    return con;
    }

    public static void main(String[] avs) throws IOException {
    FileInputStream fi = new FileInputStream("C:/archive/BH.pdf");
    ByteArrayOutputStream bo = new ByteArrayOutputStream();
    int index = 0;
    byte[] tmp = new byte[1024];
    while((index = fi.read(tmp))>-1){
    bo.write(tmp, 0, index);
    };

    new ScannerApplet().upLoad(bo);

    }
    }
    展开全文
  • 1、 首先对IMGSCAN.OCX和IMGEDIT.OCX这两个控件进行注册。 在运行里写入regsvr32 E:/....IMGSCAN.OCX(路径)。 2、js页面中的代码 var result; function Scan() {  //result =

    1、 首先对IMGSCAN.OCX和IMGEDIT.OCX这两个控件进行注册。    在运行里写入regsvr32 E:/....IMGSCAN.OCX(路径)。

    2、js页面中的代码

    var result;

    function Scan()
    {
     //result = ImgScan.ShowSelectScanner;
     
     result = ImgScan.OpenScanner();
     if(result == 0)
     {
      alert("打开扫描仪成功,请放好打印单。");
     }

     result = ImgScan.StartScan();
     
     result = ImgScan.CloseScanner();
     var dir="C:\\twain\\kd.bmp";
     ImgEdit.Image = dir;
     ImgEdit.SaveAs(dir);
     
     return  dir;
    }

    3、HTM中的调用代码
    <body bgcolor="#DCEDDF" style="background-attachment: fixed">

    <script language="javascript" src="Scaner.js"></script>
    <form name="form">
    <input type="button" name="buttonOpenPort" value="  Open Port " οnclick="javascript:Scan()">

    </form>


    <OBJECT classid="clsid:6D940280-9F11-11CE-83FD-02608C3EC08A" id="ImgEdit" style="LEFT: 100px; TOP: 100px" VIEWASTEXT>
    </object>
    <OBJECT classid="clsid:84926CA0-2941-101C-816F-0E6013114B7F" id="ImgScan" style="LEFT: 0px; TOP: 0px" VIEWASTEXT>
    </object>


    </body>

     

    展开全文
  • Kodak图象扫描控件及使用说明 Kodak控件支持图像(jpg,gif,tif,bmp....)编辑,和控制扫描仪扫描图像...
  • 具有自定义滑块,选项卡控件,按钮和复选框的Wifi扫描仪
  • 用pb开发,调用扫描仪的twain驱动用的,安装后就可以直接调用现在越来越新的扫描仪,不是用原来的方式,增加了兼容方式
  • 具有自定义滑块,选项卡控件,按钮和复选框的Wifi扫描仪
  • delphitwain 控件, delphi7亲测可用, 可以获取扫描仪或高拍仪图片,一次可以获取一张,也可以多张,前提是要安装好对应扫描仪或高拍仪驱动
  • Kodak的图像扫描控件和图像编辑,用扫描仪扫描图像。
  • 柯达扫描仪及图像编辑控件附手册,OCX注册后用OLE调用
  • C#调用扫描仪(keda控件

    千次阅读 2016-01-15 16:08:23
    1.选择扫描仪 axImgScan1.ShowSelectScanner(); 2.调用扫描仪 if (axImgScan1.OpenScanner() == 0) { if (axImgScan1.ScannerAvailable() == true)//...

    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;

     

    展开全文
  • TWAIN扫描仪的ocx控件,包括扫描功能,去黑边,去底色,区域删除等功能。  首先是TWAIN的协议
  • kodak 图控件,能控制扫描仪,显示图,翻转,放大,缩小
  • 是一款用来在网页中扫描图像的activex控件,支持所有支持twain接口的高速扫描仪/平板扫描仪,支持单张扫描,支持连续扫描,解决了部分扫描仪连续扫描内存溢出的问题,支持扫描图像切边、分割、旋转和格式化大小。...
  • java扫描仪程序完整源代码下载,java控制扫描仪控件 附程序源代码,一个使用java调用扫描仪的的源程序,是一个用Java来操作扫描仪的小例子.  
  • VintaSoftTwain.NET Library 控件允许控制平台和手持扫描仪,网页和数码相机,以及 .NET 环境中的任何其它 TWAIN 设备的运作。 具体功能: ...
  • java调用扫描仪1

    千次阅读 2013-10-26 18:39:15
    基于Applet的Web在线扫描仪控件 基于JAVAEE的B/S架构由于java语言的跨平台性 所以操控Window客户端资源能力有限, 目前比较流行是用其他语言如Delphi,VB,C++开发客户端控件 然后再html中用js调用。  但对于java...
  • 它包括以下设备:如平台扫描仪、手持扫描仪、网页以及数码相机。 具体功能: 编程环境:Win32 Visual 开发环境。使用 ATL, 以保证占用的空间最小,而且不需要 MFC.可以用于任何支持 ActiveX/COM 控件的开发环境...
  • 柯达i2400批量自动扫描仪 JoySailScan控件转出的Base64尾部永远多一个'/',将导致解码失败 解决办法: 去掉尾部的‘/’即可正常解码了 var base64Data = code.substring(0, code.length - 1); Base64解码 //...
  • 扫描仪接口程序

    千次阅读 2006-11-23 14:46:00
    请问,如何用C#编写扫描仪接口程序,它就是驱动程序么?我想在ASP.NET里web方式下使用它,如何使用呢?扫描完后的信息如何放到... 网上找到一些扫描仪控件,但是不怎么好,又没有直接在.net下web方式下应用的控件呢?
  • 安装完扫描仪驱动和Imaging for windows后在PB中引入imgscan.ocx和imgedit.ocx组件,然后编程:下面是示例代码: integer jinteger istring storepathstring ls_path IF messagebox("提示","进行扫描操作,请先将...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 282
精华内容 112
关键字:

扫描仪控件