dwt 17.3.0 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +2 -2
- package/README.md +25 -32
- package/dist/addon/dbrjs/dbr-9.2.13.browser.worker.js +11 -0
- package/dist/addon/dbrjs/dbr-9.2.13.full.wasm +0 -0
- package/dist/addon/dbrjs/{dbr-8.8.7.full.wasm.js → dbr-9.2.13.full.wasm.js} +0 -0
- package/dist/addon/dbrjs/dbr.js +7 -8
- package/dist/addon/dynamsoft.webtwain.addon.camera.css +5 -5
- package/dist/dist/DynamsoftServiceSetup-arm64.deb +0 -0
- package/dist/dist/DynamsoftServiceSetup.deb +0 -0
- package/dist/dist/DynamsoftServiceSetup.msi +0 -0
- package/dist/dist/DynamsoftServiceSetup.pkg +0 -0
- package/dist/dist/DynamsoftServiceSetup.rpm +0 -0
- package/dist/dynamsoft.webtwain.min.js +201 -57
- package/dist/dynamsoft.webtwain.min.mjs +203 -61
- package/dist/src/{dynamsoft.crypto-1.7.3.wasm → dynamsoft.crypto-1.8.0.wasm} +0 -0
- package/dist/src/{dynamsoft.imageProc-1.7.3.wasm → dynamsoft.imageProc-1.8.0.wasm} +0 -0
- package/dist/src/{dynamsoft.imageProc-sn-1.7.3.wasm → dynamsoft.imageProc-sn-1.8.0.wasm} +0 -0
- package/dist/src/{dynamsoft.imagecore-1.7.3.wasm → dynamsoft.imagecore-1.8.0.wasm} +0 -0
- package/dist/src/{dynamsoft.imageio-1.7.3.wasm → dynamsoft.imageio-1.8.0.wasm} +0 -0
- package/dist/src/{dynamsoft.imageio_wasm-1.7.3.js → dynamsoft.imageio_wasm-1.8.0.js} +3 -3
- package/dist/src/dynamsoft.lts.js +12 -34
- package/dist/src/{dynamsoft.pdfReader-1.7.3.wasm → dynamsoft.pdfReader-1.8.0.wasm} +0 -0
- package/dist/src/{dynamsoft.pdfReader_wasm-1.7.3.js → dynamsoft.pdfReader_wasm-1.8.0.js} +3 -3
- package/dist/src/{dynamsoft.pdfWriter-1.7.3.wasm → dynamsoft.pdfWriter-1.8.0.wasm} +0 -0
- package/dist/src/dynamsoft.viewer.css +1 -1
- package/dist/src/dynamsoft.viewer.js +1 -1
- package/dist/src/dynamsoft.webtwain.css +43 -21
- package/dist/src/fastcomp/{dynamsoft.crypto-1.7.3.wasm → dynamsoft.crypto-1.8.0.wasm} +0 -0
- package/dist/src/fastcomp/{dynamsoft.imageProc-1.7.3.wasm → dynamsoft.imageProc-1.8.0.wasm} +0 -0
- package/dist/src/fastcomp/{dynamsoft.imagecore-1.7.3.wasm → dynamsoft.imagecore-1.8.0.wasm} +0 -0
- package/dist/src/fastcomp/{dynamsoft.imageio-1.7.3.wasm → dynamsoft.imageio-1.8.0.wasm} +0 -0
- package/dist/src/fastcomp/{dynamsoft.imageio_wasm-1.7.3.js → dynamsoft.imageio_wasm-1.8.0.js} +3 -3
- package/dist/src/fastcomp/{dynamsoft.pdfWriter-1.7.3.wasm → dynamsoft.pdfWriter-1.8.0.wasm} +0 -0
- package/dist/types/Addon.Camera.d.ts +22 -4
- package/dist/types/Dynamsoft.Enum.d.ts +14 -0
- package/dist/types/Dynamsoft.d.ts +81 -2
- package/dist/types/WebTwain.Acquire.d.ts +37 -3
- package/dist/types/WebTwain.Viewer.d.ts +21 -17
- package/package.json +2 -2
- package/dist/addon/dbrjs/dbr-8.8.7.full.wasm +0 -0
- package/dist/addon/dbrjs/dbr-8.8.7.worker.js +0 -113
- package/dist/dist/DynamsoftServiceSetup-mips64el.deb +0 -0
- package/samples/AcquireImage.html +0 -69
- package/samples/CustomScan.html +0 -98
- package/samples/Dynamic Web TWAIN Online Demo.html +0 -8
- package/samples/Dynamic Web TWAIN Sample Code Gallery.html +0 -8
- package/samples/Edit.html +0 -111
- package/samples/LoadAndSaveImages.html +0 -103
- package/samples/Navigation.html +0 -197
- package/samples/PDFRasterizer.html +0 -88
- package/samples/ReadBarcode.html +0 -231
- package/samples/ScanOrCapture.html +0 -202
- package/samples/Thumbnail.html +0 -88
- package/samples/mobilebrowsercapture.html +0 -13
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<title>Acquire Images</title>
|
|
6
|
-
<script src="../dist/dynamsoft.webtwain.min.js"></script>
|
|
7
|
-
</head>
|
|
8
|
-
|
|
9
|
-
<body style="padding: 30px;">
|
|
10
|
-
<div id="notMobile">
|
|
11
|
-
<h1>Acquire Images</h1>
|
|
12
|
-
<div id="divNoteDeploy" style="margin: 10px 0 10px;" >Make sure you deploy the sample to an webserver that
|
|
13
|
-
<ul>
|
|
14
|
-
<li style="margin: 5px 0 5px 20px; font-size: 12px;">Runs HTTPS</li>
|
|
15
|
-
<li style="margin-left: 20px;font-size: 12px;">Serves the *.wasm file with Content-Type: application/wasm.</li>
|
|
16
|
-
</ul>
|
|
17
|
-
</div>
|
|
18
|
-
<label style="font-size: x-large;" id="H5CameraLabel"><input type="checkbox" id="H5Camera" />Use H5
|
|
19
|
-
Camera</label>
|
|
20
|
-
<select style="font-size: x-large;" id="source"></select><br />
|
|
21
|
-
<input type="button" id="btn-switch" style="font-size: x-large;" value="Hide Video" onclick="SwitchViews();" />
|
|
22
|
-
<input type="button" id="btn-grab" style="font-size: x-large;" value="Acquire" onclick="CaptureImage();" />
|
|
23
|
-
<br />
|
|
24
|
-
<br />
|
|
25
|
-
<div id="dwtcontrolContainer"></div>
|
|
26
|
-
</div>
|
|
27
|
-
<script type="text/javascript">
|
|
28
|
-
Dynamsoft.DWT.ResourcesPath = "../dist";
|
|
29
|
-
Dynamsoft.DWT.UseCameraAddonWasm = true;
|
|
30
|
-
Dynamsoft.DWT.ProductKey = 't0078lQAAAK/ZNBgqN1cFmBBaLYa3LiG4SDylHDPRco+UvWI+Tp4Rfekc6UVBU0VdL0bdydIHi2MiOAOUlKmLyJpEwlITGkUChWTejhsEwx9k';
|
|
31
|
-
Dynamsoft.DWT.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
|
|
32
|
-
Dynamsoft.DWT.Containers = [{ ContainerId: 'dwtcontrolContainer', Width: 600, Height: 800 }];
|
|
33
|
-
var bWASMCamera = true, bWASM = false;
|
|
34
|
-
window.onload = function () {
|
|
35
|
-
if (Dynamsoft.Lib.env.bMobile || Dynamsoft.DWT.UseLocalService === false) {
|
|
36
|
-
Dynamsoft.DWT.UseLocalService = false;
|
|
37
|
-
document.getElementById("H5CameraLabel").style.display = "none";
|
|
38
|
-
bWASM = true;
|
|
39
|
-
}
|
|
40
|
-
document.getElementById("H5Camera").onchange = function () {
|
|
41
|
-
sourceChanged(true);
|
|
42
|
-
bWASMCamera = document.getElementById("H5Camera").checked;
|
|
43
|
-
updateSources();
|
|
44
|
-
};
|
|
45
|
-
document.getElementById('source').onchange = function () {
|
|
46
|
-
sourceChanged();
|
|
47
|
-
}
|
|
48
|
-
if (Dynamsoft && Dynamsoft.Lib.env.bWin && Dynamsoft.DWT.UseLocalService && !document.getElementById("H5Camera").checked) {
|
|
49
|
-
bWASMCamera = false;
|
|
50
|
-
}
|
|
51
|
-
Dynamsoft.DWT.Load();
|
|
52
|
-
};
|
|
53
|
-
var DWObject;
|
|
54
|
-
var webCamStartingIndex;
|
|
55
|
-
var isVideoOn = true;
|
|
56
|
-
var devices = [];
|
|
57
|
-
|
|
58
|
-
function Dynamsoft_OnReady() {
|
|
59
|
-
DWObject = Dynamsoft.DWT.GetWebTwain('dwtcontrolContainer');
|
|
60
|
-
updateSources();
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function sourceChanged(closeCamera) {
|
|
64
|
-
if (closeCamera || document.getElementById('source').selectedIndex < webCamStartingIndex) {
|
|
65
|
-
if (bWASMCamera)
|
|
66
|
-
DWObject.Addon.Camera.stop();
|
|
67
|
-
else
|
|
68
|
-
DWObject.Addon.Webcam.StopVideo();
|
|
69
|
-
isVideoOn = false;
|
|
70
|
-
document.getElementById("btn-grab").style.backgroundColor = "";
|
|
71
|
-
document.getElementById('btn-grab').value = 'Acquire From a Scanner';
|
|
72
|
-
document.getElementById("btn-switch").style.display = 'none';
|
|
73
|
-
} else {
|
|
74
|
-
if (bWASMCamera)
|
|
75
|
-
DWObject.Addon.Camera.selectSource(devices[document
|
|
76
|
-
.getElementById("source").selectedIndex].deviceId);
|
|
77
|
-
else
|
|
78
|
-
DWObject.Addon.Webcam.SelectSource(devices[document
|
|
79
|
-
.getElementById("source").selectedIndex].label);
|
|
80
|
-
SetIfWebcamPlayVideo(true);
|
|
81
|
-
document.getElementById('btn-grab').value = 'Acquire From a Camera';
|
|
82
|
-
document.getElementById("btn-switch").style.display = '';
|
|
83
|
-
}
|
|
84
|
-
document.getElementById("btn-grab").disabled = "";
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function showSources() {
|
|
88
|
-
var sourceElement = document.getElementById("source");
|
|
89
|
-
var i, L = sourceElement.options.length - 1;
|
|
90
|
-
for (i = L; i >= 0; i--) {
|
|
91
|
-
sourceElement.remove(i);
|
|
92
|
-
}
|
|
93
|
-
for (var i = 0; i < devices.length; i++)
|
|
94
|
-
sourceElement.options.add(new Option(devices[i].label), i);
|
|
95
|
-
sourceChanged();
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function updateSources() {
|
|
99
|
-
devices = [];
|
|
100
|
-
if (DWObject) {
|
|
101
|
-
if (bWASM) {
|
|
102
|
-
webCamStartingIndex = 0;
|
|
103
|
-
DWObject.Addon.Camera.getSourceList().then(function (list) {
|
|
104
|
-
devices = list;
|
|
105
|
-
showSources();
|
|
106
|
-
});
|
|
107
|
-
} else {
|
|
108
|
-
var i = 0, scanners = DWObject.GetSourceNames();
|
|
109
|
-
for (i = 0; i < scanners.length; i++) {
|
|
110
|
-
devices.push({
|
|
111
|
-
deviceId: i,
|
|
112
|
-
label: scanners[i]
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
webCamStartingIndex = i;
|
|
116
|
-
if (bWASMCamera) {
|
|
117
|
-
DWObject.Addon.Camera.getSourceList().then(function (list) {
|
|
118
|
-
devices = devices.concat(list);
|
|
119
|
-
showSources();
|
|
120
|
-
});
|
|
121
|
-
} else {
|
|
122
|
-
var cameras = DWObject.Addon.Webcam.GetSourceList();
|
|
123
|
-
for (i = 0; i < cameras.length; i++) {
|
|
124
|
-
devices.push({
|
|
125
|
-
deviceId: webCamStartingIndex + i,
|
|
126
|
-
label: cameras[i]
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
showSources();
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
function SetIfWebcamPlayVideo(bShow) {
|
|
136
|
-
if (bShow) {
|
|
137
|
-
if (!bWASMCamera)
|
|
138
|
-
DWObject.Addon.Webcam.StopVideo();
|
|
139
|
-
setTimeout(function () {
|
|
140
|
-
if (bWASMCamera)
|
|
141
|
-
DWObject.Addon.Camera.play();
|
|
142
|
-
else
|
|
143
|
-
DWObject.Addon.Webcam.PlayVideo(DWObject, 80, function () { });
|
|
144
|
-
isVideoOn = true;
|
|
145
|
-
document.getElementById("btn-grab").style.backgroundColor = "";
|
|
146
|
-
document.getElementById("btn-grab").disabled = "";
|
|
147
|
-
document.getElementById("btn-switch").value = "Hide Video";
|
|
148
|
-
}, 30);
|
|
149
|
-
} else {
|
|
150
|
-
if (bWASMCamera)
|
|
151
|
-
DWObject.Addon.Camera.stop();
|
|
152
|
-
else
|
|
153
|
-
DWObject.Addon.Webcam.StopVideo();
|
|
154
|
-
isVideoOn = false;
|
|
155
|
-
document.getElementById("btn-grab").style.backgroundColor = "#aaa";
|
|
156
|
-
document.getElementById("btn-grab").disabled = "disabled";
|
|
157
|
-
document.getElementById("btn-switch").value = "Show Video";
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
function SwitchViews() {
|
|
162
|
-
if (isVideoOn == false) {
|
|
163
|
-
// continue the video
|
|
164
|
-
SetIfWebcamPlayVideo(true);
|
|
165
|
-
} else {
|
|
166
|
-
// stop the video
|
|
167
|
-
SetIfWebcamPlayVideo(false);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
function CaptureImage() {
|
|
172
|
-
if (DWObject) {
|
|
173
|
-
if (document.getElementById('source').selectedIndex < webCamStartingIndex) {
|
|
174
|
-
DWObject.IfShowUI = true;
|
|
175
|
-
DWObject.IfDisableSourceAfterAcquire = true;
|
|
176
|
-
DWObject.SelectSourceByIndex(document.getElementById('source').selectedIndex);
|
|
177
|
-
DWObject.CloseSource();
|
|
178
|
-
DWObject.OpenSource();
|
|
179
|
-
DWObject.AcquireImage();
|
|
180
|
-
} else {
|
|
181
|
-
var funCaptureImage = function () {
|
|
182
|
-
setTimeout(function () {
|
|
183
|
-
SetIfWebcamPlayVideo(false);
|
|
184
|
-
}, 50);
|
|
185
|
-
};
|
|
186
|
-
if (bWASMCamera){
|
|
187
|
-
var p = document.location.protocol;
|
|
188
|
-
if (p == 'https:' || p == 'http:')
|
|
189
|
-
DWObject.Addon.Camera.capture().then(function (blob) { DWObject.Viewer.render(); funCaptureImage(); });
|
|
190
|
-
else {
|
|
191
|
-
alert("HTTPS is required for accessing cameras.");
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
else
|
|
195
|
-
DWObject.Addon.Webcam.CaptureImage(funCaptureImage, funCaptureImage);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
</script>
|
|
200
|
-
</body>
|
|
201
|
-
|
|
202
|
-
</html>
|
package/samples/Thumbnail.html
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<title>Use Dynamic Web TWAIN to Scan With Thumbnails View</title>
|
|
6
|
-
<script src="../dist/dynamsoft.webtwain.min.js"></script>
|
|
7
|
-
</head>
|
|
8
|
-
|
|
9
|
-
<body style="padding: 30px;">
|
|
10
|
-
<input type="button" style="font-size: x-large;" value="Scan" onclick="AcquireImage();" class="btn bgBlue mb15 mr20" />
|
|
11
|
-
<input type="button" style="font-size: x-large;" value="Open a local file" onclick="LoadImages();" class="btn bgBlue mb15" />
|
|
12
|
-
<br />
|
|
13
|
-
<br />
|
|
14
|
-
<div style="display: block; position: absolute;" class="container">
|
|
15
|
-
<div id="dwtcontrolContainer" style="float: left; position:relative; margin-right:20px;"></div>
|
|
16
|
-
<div id="dwtcontrolContainerLargeViewer" style="float: left; position:relative;"></div>
|
|
17
|
-
</div>
|
|
18
|
-
|
|
19
|
-
<script type="text/javascript">
|
|
20
|
-
Dynamsoft.DWT.ResourcesPath = "../dist";
|
|
21
|
-
Dynamsoft.DWT.ProductKey = 't0078lQAAAK/ZNBgqN1cFmBBaLYa3LiG4SDylHDPRco+UvWI+Tp4Rfekc6UVBU0VdL0bdydIHi2MiOAOUlKmLyJpEwlITGkUChWTejhsEwx9k';
|
|
22
|
-
window.onload = function () {
|
|
23
|
-
if (Dynamsoft && (!Dynamsoft.Lib.product.bChromeEdition)) {
|
|
24
|
-
var ObjString = [];
|
|
25
|
-
ObjString.push('<div class="p15">');
|
|
26
|
-
ObjString.push("Please note that the sample doesn't work on your current browser, please use a modern browser like Chrome, Firefox, etc.");
|
|
27
|
-
ObjString.push('</div>');
|
|
28
|
-
Dynamsoft.DWT.ShowDialog(400, 180, ObjString.join(''));
|
|
29
|
-
if (document.getElementsByClassName("dynamsoft-dialog-close"))
|
|
30
|
-
document.getElementsByClassName("dynamsoft-dialog-close")[0].style.display = "none";
|
|
31
|
-
} else {
|
|
32
|
-
Dynamsoft.DWT.Containers = [{ContainerId:'dwtcontrolContainer', Width:300, Height:800}];
|
|
33
|
-
Dynamsoft.DWT.Load();
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
Dynamsoft.DWT.AutoLoad = false;
|
|
38
|
-
Dynamsoft.DWT.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady); // Register OnWebTwainReady event. This event fires as soon as Dynamic Web TWAIN is initialized and ready to be used
|
|
39
|
-
|
|
40
|
-
var DWObject;
|
|
41
|
-
|
|
42
|
-
function Dynamsoft_OnReady() {
|
|
43
|
-
DWObject = Dynamsoft.DWT.GetWebTwain('dwtcontrolContainer'); // Get the Dynamic Web TWAIN object that is embeded in the div with id 'dwtcontrolContainer'
|
|
44
|
-
if (DWObject) {
|
|
45
|
-
DWObject.Viewer.width = 300;
|
|
46
|
-
DWObject.Viewer.height = 800;
|
|
47
|
-
DWObject.Viewer.cursor = "default";
|
|
48
|
-
Dynamsoft.DWT.CustomizableDisplayInfo.buttons.visibility.close = false;
|
|
49
|
-
DWObject.Viewer.setViewMode(1, 4); // Set the view mode to 1 by 4
|
|
50
|
-
DWObject.ShowImageEditor("dwtcontrolContainerLargeViewer", 750, 800);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function AcquireImage() {
|
|
55
|
-
if (DWObject) {
|
|
56
|
-
DWObject.SelectSource(function () {
|
|
57
|
-
var OnAcquireImageSuccess, OnAcquireImageFailure;
|
|
58
|
-
OnAcquireImageSuccess = OnAcquireImageFailure = function () {
|
|
59
|
-
DWObject.CloseSource();
|
|
60
|
-
};
|
|
61
|
-
DWObject.OpenSource();
|
|
62
|
-
DWObject.IfDisableSourceAfterAcquire = true;
|
|
63
|
-
DWObject.AcquireImage(OnAcquireImageSuccess, OnAcquireImageFailure);
|
|
64
|
-
}, function () {
|
|
65
|
-
console.log('SelectSource failed!');
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function LoadImages() {
|
|
71
|
-
if (DWObject) {
|
|
72
|
-
if (DWObject.Addon && DWObject.Addon.PDF) {
|
|
73
|
-
DWObject.Addon.PDF.SetResolution(300);
|
|
74
|
-
DWObject.Addon.PDF.SetConvertMode(Dynamsoft.DWT.EnumDWT_ConvertMode.CM_RENDERALL);
|
|
75
|
-
}
|
|
76
|
-
DWObject.LoadImageEx('', 5,
|
|
77
|
-
function () {
|
|
78
|
-
},
|
|
79
|
-
function (errorCode, errorString) {
|
|
80
|
-
alert('Load Image:' + errorString);
|
|
81
|
-
}
|
|
82
|
-
);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
</script>
|
|
86
|
-
</body>
|
|
87
|
-
|
|
88
|
-
</html>
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Please scan the barcode to visit the online demo</title>
|
|
5
|
-
</head>
|
|
6
|
-
<body>
|
|
7
|
-
<h2>Please scan the barcode to visit the online demo</h2>
|
|
8
|
-
<div>Click this <a href="https://demo.dynamsoft.com/web-twain/mobile-online-camera-scanner/" target="_blank" >link</a> to visit the online demo.<br/>
|
|
9
|
-
<div>Click this <a href="https://download.dynamsoft.com/Samples/DWT/SourceCode-DWT-Mobile-Camera-Scanner.zip" target="_blank" >link</a> to download the sample code.<br/>
|
|
10
|
-
Or you can scan the following barcode to visit it in your mobile devices.</div>
|
|
11
|
-
<img style="height:300px; width:300px;" src="data:image/png;base64,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" />
|
|
12
|
-
</body>
|
|
13
|
-
</html>
|