Как сохранить отсканированные документы с помощью Dynamic Web Twain

Я использую Dynamic Web Twain в своем веб-приложении, использующем Angular 4, и у меня возникают проблемы с сохранением документов после сканирования. Я нашел эту функцию в документации Twain:

function DynamicWebTwain_OnPostTransfer() { //fires after each scan
     var strFileName;
     var Digital = new Date();
     var Month = Digital.getMonth() + 1;
     var Day = Digital.getDate();
     var Hour = Digital.getHours();
     var Minute = Digital.getMinutes();
     var Second = Digital.getSeconds();
     var CurrentTime = Month + "_" + Day + "_" + Hour + "_" + Minute + "_" + Second;
     strFileName = "D:/temp/"+CurrentTime + ".pdf";
     DWObject.SaveAsPDF(strFileName,DWObject.CurrentImageIndexInBuffer); //save each scanned image as a different PDF file 
     if (DWObject.ErrorCode != 0) {  
         alert (DWObject.ErrorString);
     }
 }

Но проблема в том, что я не знаю, где поместить его в мой twain.js и как он должен работать. Вот мой twain.js

var app = angular.module('WebScanning', []);
app.controller('twainControl',function twainControl($scope) {
$scope.acquireImage = function() {
    var DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer'); // Get the Dynamic Web TWAIN object that is embeded in the div with id '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();

};

});

любая идея?

2 ответа

Согласно онлайн-руководству Dynamic Web TWAIN, Вы можете зарегистрировать событие следующим образом:

            var DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
            DWObject.RegisterEvent("OnPostTransfer", DynamicWebTwain_OnPostTransfer);

            function DynamicWebTwain_OnPostTransfer() { //fires after each scan
                var strFileName;
                var Digital = new Date();
                var Month = Digital.getMonth() + 1;
                var Day = Digital.getDate();
                var Hour = Digital.getHours();
                var Minute = Digital.getMinutes();
                var Second = Digital.getSeconds();
                var CurrentTime = Month + "_" + Day + "_" + Hour + "_" + Minute + "_" + Second;
                strFileName = "D:/temp/" + CurrentTime + ".pdf";
                DWObject.SaveAsPDF(strFileName, DWObject.CurrentImageIndexInBuffer); //save each scanned image as a different PDF file 
                if (DWObject.ErrorCode != 0) {
                    alert(DWObject.ErrorString);
                }
            }

Прежде всего, для Angular 4 или 5 более рекомендуемый пример кода, который включает в себя все общие функции, включая сканирование / загрузку / сохранение / загрузку и т. Д. То, как вы пишете код, больше похоже на старый стиль AngularJS.,

Это сказал. следующий фрагмент должен работать для вашего текущего кода

    $scope.acquireImage = function() {
        var DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer'); 
        DWObject.RegisterEvent('OnPostTransfer', ()=>{
            var strFileName;
            var Digital = new Date();
            var Month = Digital.getMonth() + 1;
            var Day = Digital.getDate();
            var Hour = Digital.getHours();
            var Minute = Digital.getMinutes();
            var Second = Digital.getSeconds();
            var CurrentTime = Month + "_" + Day + "_" + Hour + "_" + Minute + "_" + Second;
            strFileName = "D:/temp/"+CurrentTime + ".pdf";
            DWObject.IfShowFileDialog=false;
            DWObject.IfShowProgressBar = false;
            console.log(DWObject.CurrentImageIndexInBuffer);
            DWObject.SaveAsPDF(strFileName,DWObject.CurrentImageIndexInBuffer, function(){},function(){}); //save each scanned image as a different PDF file 
            if (DWObject.ErrorCode != 0) {  
                alert (DWObject.ErrorString);
            }
        });
        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();
Другие вопросы по тегам