开发跨平台文档成像 Web 应用
本文将向您展示如何使用 ImageCapture Suite 开发与所有主流浏览器兼容的跨平台文档影像解决方案。
引言
如今,文档管理是一项巨大的挑战,尤其是对于医疗保健、金融、政府等纸张密集型行业。您可能希望开发一个文档影像应用程序,该应用程序允许 Windows 或 Mac OS 用户通过浏览器轻松扫描文档或捕获图像,以便您可以更有效地管理文档/记录。
本文将向您展示如何使用 ImageCapture Suite 开发与所有主流浏览器兼容的跨平台文档影像解决方案。
背景
Dynamsoft 的 ImageCapture Suite 是一个基于浏览器的文档影像库。 它允许您从 Windows 或 Mac 上的扫描仪、网络摄像头和其他 TWAIN/UVC/WIA 兼容设备捕获图像。 如果您对 SDK 感兴趣,可以从 Dynamsoft 网站下载30 天免费试用版。
主要特点
- 从扫描仪、网络摄像头和其他 TWAIN/WIA/UVC 兼容的影像设备捕获图像/文档。
- 与主流浏览器兼容,包括 Windows 和 Mac 上的 IE(32 位和 64 位)、Firefox、Chrome、Safari 和 Opera。
- 编辑图像:裁剪、更改图像大小、旋转、缩放、擦除等。
- 将图像上传到各种位置 - 本地文件夹、FTP 站点、Web 服务器、数据库、SharePoint 库等。
- 增强的安全性:支持 SSL 和 Windows/Forms/基本身份验证。
- 支持的图像格式包括 BMP、JPEG、PNG、TIFF(单页和多页)和 PDF(单页和多页)。
Using the Code
跨平台和跨浏览器支持
ImageCapture Suite 针对不同的用户提供 3 个版本
ActiveX 版本 – 适用于 32 位或 64 位 Internet Explorer
插件版本 – 适用于 Windows 上的 Chrome、Firefox、Safari、Opera
Mac 版本 – 适用于 Mac 上的 Chrome、Firefox、Safari、Opera
为了使您的 Web 应用程序能够在 Windows 或 Mac 上的所有主流浏览器上运行,您可以在 JavaScript 中检测操作系统和浏览器类型,并加载 ImageCapture Suite 的相应版本。
function DW_PageonloadInner() {
// Get User Agent Value
ua = (navigator.userAgent.toLowerCase());
if (ua.indexOf("wow64") == -1) {
var samplesource32bitCtr = document.getElementById("samplesource32bit");
if (samplesource32bitCtr)
samplesource32bitCtr.href = "http://www.dynamsoft.com/demo/DWT/Sources/twainkit.exe";
}
// Set the Explorer Type
if (ua.indexOf("msie") != -1)
DW_InIE = true;
else
DW_InIE = false;
// Set the Operating System Type
if (ua.indexOf("macintosh") != -1)
DW_InWindows = false;
else
DW_InWindows = true;
// Set the x86 and x64 type
if (ua.indexOf("win64") != -1 && ua.indexOf("x64") != -1)
DW_InWindowsX86 = false;
else
DW_InWindowsX86 = true;
var varShowDetail = document.getElementById("showDetail");
if (varShowDetail && DW_InIE == true) {
varShowDetail.style.display = "";
}
InitMenum();
}
function DW_CreateControl(bNeebBack) {
var objString = "";
var DWTContainer;
// For IE, render the ActiveX Object
if (DW_InIE) {
objString = "<object id='" + DW_ObjectName + "' style='width:" + DW_Width + "px;height:" + DW_Height + "px'";
if (DW_InWindowsX86)
objString += "codebase='" + DW_CABX86Path + "#version=" + DW_VersionCode + "' ";
else
objString += "codebase='" + DW_CABX64Path + "#version=" + DW_VersionCode + "' ";
var temp = DW_IsTrial ? DW_TRAILCLASSID : DW_FULLCLASSID;
objString += " classid='clsid:" + temp + "' viewastext>";
objString += " <param name='Manufacturer' value='DynamSoft Corporation' />";
objString += " <param name='ProductFamily' value='" + DW_ProductName + "' />";
objString += " <param name='ProductName' value='" + DW_ProductName + "' />";
//objString += " <param name='wmode' value='transparent'/> ";
objString += " </object>";
}
// For non-IE, render the embed object
else {
objString = " <embed id='" + DW_ObjectName + "'style='display: inline; width:" + DW_Width + "px;height:" + DW_Height + "px' id='" + DW_ObjectName + "' type='" + DW_MIMETYPE + "'";
objString += " OnPostTransfer='Dynamsoft_OnPostTransfer' OnPostAllTransfers='Dynamsoft_OnPostAllTransfers'";
objString += " OnMouseClick='Dynamsoft_OnMouseClick' OnPostLoad='Dynamsoft_OnPostLoadfunction'";
objString += " OnImageAreaSelected = 'Dynamsoft_OnImageAreaSelected'";
objString += " OnImageAreaDeSelected = 'Dynamsoft_OnImageAreaDeselected'";
objString += " OnMouseDoubleClick = 'Dynamsoft_OnMouseDoubleClick'";
objString += " OnMouseRightClick = 'Dynamsoft_OnMouseRightClick'";
objString += " OnTopImageInTheViewChanged = 'Dynamsoft_OnTopImageInTheViewChanged'";
objString += " OnGetFilePath='Dynamsoft_OnGetFilePath'";
if (DW_InWindows)
objString += " pluginspage='" + DW_MSIPath + "'></embed>";
else
objString += " pluginspage='" + DW_PKGPath + "'></embed>";
}
DWTContainer = document.getElementById(DW_DWTContainerID);
DWTContainer.innerHTML = objString;
DWObject = document.getElementById(DW_ObjectName);
}
从扫描仪或网络摄像头获取图像
相对而言,TWAIN 和网络摄像头协议都是特殊的领域,需要花费大量时间才能熟悉。从头开始编写应用程序可能需要几个月的时间。
但是,使用 ImageCapture Suite,您将能够在数小时内完成文档扫描或图像捕获编码。
您可以在代码中自定义扫描属性,例如分辨率、像素类型、亮度、对比度等。您还可以通过显示源的用户界面来设置扫描设置。
function AcquireImageInner(){
if (DW_DWTSourceContainerID == "")
DWObject.SelectSource(); //show the available imaging devices
else
DWObject.SelectSourceByIndex(document.getElementById(DW_DWTSourceContainerID).selectedIndex);
DWObject.CloseSource();
DWObject.OpenSource();
var iSelectedIndex = document.getElementById(DW_DWTSourceContainerID).selectedIndex;
var iTwainType = DWObject.GetSourceType(iSelectedIndex); //check the device type, TWAIN devices or webcam
if(iTwainType == 0)
{
DWObject.IfShowUI = document.getElementById("ShowUI").checked;
var i;
for(i=0;i<3;i++)
{
if(document.getElementsByName("PixelType").item(i).checked==true)
DWObject.PixelType = i;
}
DWObject.Resolution = Resolution.value;
DWObject.IfFeederEnabled = document.getElementById("ADF").checked ;
DWObject.IfDuplexEnabled = document.getElementById("Duplex").checked ;
AppendMessage("Pixel Type: " + DWObject.PixelType + "<br />Resolution: " + DWObject.Resolution + "<br />");
}
else
{
DWObject.IfShowUI = document.getElementById("ShowUIForWebcam").checked;
if (DW_InWindows) {
//some webcam features only for Windows currently
DWObject.SelectMediaTypeByIndex(document.getElementById("MediaType").selectedIndex);
DWObject.SelectResolutionForCamByIndex(document.getElementById("ResolutionWebcam").selectedIndex);
}
DWObject.IfDisableSourceAfterAcquire = true;
DWObject.AcquireImage(); //acquire image from the device
}
在 Web 服务器上运行或部署应用程序
可以从文章中下载完整的源代码。该示例包括从扫描仪或网络摄像头捕获图像、编辑图像并将图像保存到本地磁盘等功能。
要使用有效的试用许可证运行示例应用程序或自定义 Web 应用程序,您可以从 Dynamsoft 网站下载 ImageCapture Suite。
ImageCapture Suite 30 天免费试用版下载
要从不同的客户端机器测试文档影像功能,您可以简单地将示例代码复制到您的 Web 服务器(IIS、Apache 或 Tomcat)。用户只需在第一次访问网页时在浏览器中下载并安装 ActiveX/插件。更多详情
在线演示也供您参考。
ImageCapture Suite 在线演示