Событие OnGetFilePath не запускается - PullRequest
0 голосов
/ 03 октября 2018

После того, как пользователь отсканировал документ - я хотел бы позволить ему выбрать место для сохранения файла, сохранить файл и, наконец, вернуть путь к файлу, который он только что сохранил.

Iя пытаюсь использовать событие " OnGetFilePath ", но оно не работает.

Код JS здесь:

var DWObject;

Dynamsoft.WebTwainEnv.AutoLoad = false;
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);


function LoadEnv() {
    Dynamsoft.WebTwainEnv.Load();
}

function Dynamsoft_OnReady() {
    DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');

    if (DWObject) {

        DWObject.IfShowFileDialog = true;
        DWObject.RegisterEvent('OnGetFilePath', OnGetFilePath); 

        DWObject.SelectSource(function () {
            DWObject.OpenSource();
            DWObject.IfDisableSourceAfterAcquire = true;
            DWObject.AcquireImage(OnAcquireImageSuccess, OnAcquireImageFailure);
        }, function () {
            console.log('SelectSource failed!');
        });
    }
}

function OnAcquireImageSuccess() {
    console.log('Successfully aquired image');
    SavePDF();
    DWObject.CloseSource();
}

//File saved to disk successfully 
function SavePDF() {
    DWObject.SaveAsPDF('file.pdf');
}

//Not Fired
function OnGetFilePath(bSave, filesCount, index, path, filename) {
    console.log("File Path!");
} 

1 Ответ

0 голосов
/ 03 октября 2018

Это то, что я сделал, и я думаю, что это поможет вам.

  • Я скачал образец кода - https://demo.dynamsoft.com/DWT/online_demo_scan.aspx
  • Я добавил кнопку рядом сКнопка сканирования на online_demo_scan.html

  • Я добавил предупреждение в Dynamsoft_OnGetFilePath в online_demo_operation.js

    function Dynamsoft_OnGetFilePath (bSave, count, index, path, name) {alert ('Событие OnGetFilePath сработало!');}

И событие срабатывает, когда я нажимаю кнопку.

Согласно документации

Это событие срабатывает, когда 1.метод ShowFileDialog завершен;2. метод LoadImageEx завершил работу с IfShowFileDialog, установленным в true.

EDIT : Некоторый дополнительный код, показывающий, как сохранить файл после запуска события.

function Dynamsoft_OnGetFilePath(bSave, count, index, path, name) {
    var file_path = path + "\\" + name + ".pdf";
    DWObject.IfShowFileDialog = false;
    DWObject.SaveAsPDF(file_path);
    alert(file_path);
}
...