如何使用Web twain从扫描仪获取扫描图像作为HTML文件输入字段的输入?

时间:2015-06-24 22:38:47

标签: twain dynamic-web-twain

如何将扫描仪的图像输出作为HTML文件输入字段的文件输入。我正在使用dynasoft web twain api来扫描图像。http://www.dynamsoft.com/Support/DWTGuide/Dynamic%20Web%20TWAIN%20SDK.html#Manual

获取扫描图像的片段 -

    var DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
    DWObject.IfDisableSourceAfterAcquire = true;    // Source will be closed automatically after acquisition.
    DWObject.SelectSource();                        // Select a Data Source (a device like scanner) from the Data Source Manager.
    DWObject.OpenSource();                          // Open the source. You can set resolution, pixel type, etc. after this method. Please refer to the sample 'Scan' -> 'Custom Scan' for more info.
    DWObject.AcquireImage();

文件输入摘录 -

<input type="file" id="fileselect" accept="image/*,application/pdf" capture="camera" app-file-select="onFileSelect($files)" app-change="getFile($files)" app-model="file" style="display:none">

Html文件正在服务器端作为MultipartFile处理。

提前致谢

2 个答案:

答案 0 :(得分:1)

您不需要创建输入元素。只需使用API​​ HTTPUploadAllThroughPostAsPDF HTTPUploadThroughPostAsMultiPagePDF 。在服务器端,您可以使用您喜欢的任何编程语言。

例如,ASP.NET:

<%@ Page Language="C#" %>

<%
    try
    {
        String strImageName;
        HttpFileCollection files = HttpContext.Current.Request.Files;
        HttpPostedFile uploadfile = files["RemoteFile"];
        strImageName = uploadfile.FileName;

        uploadfile.SaveAs(Server.MapPath(".") + "\\UploadedImages\\" + strImageName);

    }
    catch
    {
    }
%>

使用 RemoteFile 提取文件内容。

答案 1 :(得分:0)

动态Web Twain(DWT)不会将捕获的图像提供给浏览器,因此浏览器可以将其用作输入字段。但我们必须将其上传到我们的服务器。 DWT为此提供了许多功能。您可以使用满足您需求的以下任何一种 -

FTP功能:

  • FTPUpload()
  • FTPUploadAllAsMultiPageTIFF()
  • FTPUploadAllAsPDF()
  • FTPUploadAsMultiPagePDF()
  • FTPUploadAllAsMultiPageTIFF()
  • FTPUploadAllAsPDF()
  • FTPUploadAsMultiPagePDF()
  • FTPUploadAsMultiPageTIFF()
  • FTPUploadDirectly()
  • FTPUploadEx()

HTTP功能:

  • HTTPUploadAllThroughPostAsMultiPageTIFF()
  • HTTPUploadAllThroughPostAsPDF()
  • HTTPUploadThroughPost()
  • HTTPUploadThroughPostAsMultiPagePDF()
  • HTTPUploadThroughPostAsMultiPageTIFF()
  • HTTPUploadThroughPostDirectly()
  • HTTPUploadThroughPostEx()

你知道哪一个适合你。例如,如果您希望将所有图像上传为PDF,并希望使用HTTP发布请求,则应使用&#39; HTTPUploadAllThroughPostAsPDF&#39;。

DWObject.HTTPUploadAllThroughPostAsPDF(location.hostname, $POST_URL, 'my-test-file.pdf');

您可能需要将一些其他字段与文件一起传递。在这种情况下,您可以使用&#39; SetHTTPFormField&#39;。以下是将图像上传为PDF的详细示例。

DWObject.SetHTTPFormField("field1", "field1 value");
DWObject.SetHTTPFormField("field2", "field2 value");
DWObject.IfSSL = ('https:' === location.protocol);
if (location.port != '') {
    DWObject.HTTPPort = location.port;
} else {
    DWObject.HTTPPort = (DWObject.IfSSL) ? 443 : 80;
}
DWObject.HTTPUploadAllThroughPostAsPDF(location.hostname, $POST_URL, 'my-test-file.pdf');
相关问题