Как сохранить отсканированные документы с помощью 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();