0

用户扫描文档后 - 我想让他们选择保存文件的位置,保存文件,最后返回他们刚刚保存的文件的路径。

我正在尝试使用“ 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!");
} 
4

1 回答 1

2

这就是我所做的,我认为它会对你有所帮助。

  • 我下载了示例代码 - https://demo.dynamsoft.com/DWT/online_demo_scan.aspx
  • 我在 online_demo_scan.html 上的 Scan 按钮旁边添加了一个按钮

    <input id="btnTest" value="TEST" type="button" onclick="DWObject.ShowFileDialog(false, 'JPG,PNG,TIF', 0, '', '', true, true, 0);" />

  • 我在 online_demo_operation.js 中向 Dynamsoft_OnGetFilePath 添加了警报

    function Dynamsoft_OnGetFilePath(bSave, count, index, path, name) { alert('OnGetFilePath 事件触发!'); }

当我单击按钮时,事件会触发。

根据文档

该事件在 1. ShowFileDialog 方法完成时触发;2. 方法 LoadImageEx 已完成,IfShowFileDialog 设置为 true。

编辑:一些额外的代码来显示一旦事件被触发如何保存文件。

function Dynamsoft_OnGetFilePath(bSave, count, index, path, name) {
    var file_path = path + "\\" + name + ".pdf";
    DWObject.IfShowFileDialog = false;
    DWObject.SaveAsPDF(file_path);
    alert(file_path);
}
于 2018-10-03T17:45:07.780 回答