扫描仪如何实现共享
我们知道,打印机设置共享后,局域网中的其他电脑就可以像连接打印机的电脑一样打印文件,扫描仪也可以办到没?答案是不行,这是因为windows服务里面提供了一个Print Spooler服务,但未提供扫描仪相关解决方案。
常见的共享方式
- 无任何第三方软件配合方式:如果扫描仪可以实现在机器上点一下就自动在电脑里面生成文件,可以将该文件夹进行共享即可.
- 通过程序调用扫描仪的直连电脑的服务程序
扫描仪共享服务代码
Private Sub scan(savefs As String)
Dim manager As DeviceManager = New WIA.DeviceManager ' DeviceManagerClass
Dim Device As Device = Nothing
For Each info In manager.DeviceInfos
Dim ii = info.Type
If ii = WiaDeviceType.ScannerDeviceType Then
Device = info.Connect
Exit For
End If
Next
Dim item = Device.Items(1)
setItem(item, "6146", 0) '4黑色和白色,2灰度,1种颜色,0未规定
setItem(item, "6147", 300) '水平分辨率
setItem(item, "6148", 300) '垂直分辨率
'setItem(item, "6151", 300 * 11) '水平扫描区域
'setItem(item, "6152", 300 * 11) '垂直扫描区域
Dim cdc As WIA.CommonDialog = New WIA.CommonDialog
Dim ImageFile As ImageFile = cdc.ShowTransfer(item, WIA.FormatID.wiaFormatJPEG, True)
If IsNothing(ImageFile) = False Then
Dim buffer() As Byte = ImageFile.FileData.BinaryData
Using ms = New System.IO.MemoryStream
ms.Write(buffer, 0, buffer.Length)
Using img = System.Drawing.Image.FromStream(ms)
img.Save(savefs, Drawing.Imaging.ImageFormat.Jpeg)
End Using
End Using
End If
End Sub
注意
1.该服务采用WIA进行图像采集,需要用服务安装程序安装到系统服务中,服务已设置自动启动
2.远程调用方式:http://IP:1467/OtherAPI?Otherapi=scan
3.由于只提供了调用成功的显示,你也可以自己http文件下载功能实现HTTP传输
4.传送门: 扫描仪共享服务下载地址