【问题标题】:How do i get the scanned image from Scanner as an input for HTML File input field using web twain?如何使用 Web twain 从扫描仪获取扫描图像作为 HTML 文件输入字段的输入?
【发布时间】:2015-06-24 22:38:47
【问题描述】:

如何从扫描仪获取图像输出作为 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 处理。

提前致谢

【问题讨论】:

    标签: twain dynamic-web-twain


    【解决方案1】:

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

    例如,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提取文件内容。

    【讨论】:

      【解决方案2】:

      Dynamic 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 发布请求,您应该使用 'HTTPUploadAllThroughPostAsPDF'。

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

      您可能需要与文件一起传递一些其他字段。在这种情况下,您可以使用“SetHTTPFormField”。这是上传图片为 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');
      

      【讨论】:

      • 你如何在后端读取这些额外的字段,我在后端使用 nodejs 并且在请求对象prntscr.com/kka7zo 中找不到这些字段......它们可能在哪里?
      猜你喜欢
      • 2015-05-02
      • 2012-12-06
      • 1970-01-01
      • 2012-11-02
      • 2016-06-20
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      相关资源
      最近更新 更多