dwt 17.3.4 → 18.0.2

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.
Files changed (55) hide show
  1. package/LICENSE.txt +2 -2
  2. package/README.md +26 -33
  3. package/dist/addon/dbrjs/dbr-9.2.13.browser.worker.js +11 -0
  4. package/dist/addon/dbrjs/dbr-9.2.13.full.wasm +0 -0
  5. package/dist/addon/dbrjs/{dbr-8.8.7.full.wasm.js → dbr-9.2.13.full.wasm.js} +285 -285
  6. package/dist/addon/dbrjs/dbr.js +21 -22
  7. package/dist/addon/dynamsoft.webtwain.addon.camera.css +7 -7
  8. package/dist/dist/DynamsoftServiceSetup-arm64.deb +0 -0
  9. package/dist/dist/DynamsoftServiceSetup.deb +0 -0
  10. package/dist/dist/DynamsoftServiceSetup.msi +0 -0
  11. package/dist/dist/DynamsoftServiceSetup.pkg +0 -0
  12. package/dist/dist/DynamsoftServiceSetup.rpm +0 -0
  13. package/dist/dynamsoft.webtwain.min.js +327 -191
  14. package/dist/dynamsoft.webtwain.min.mjs +330 -195
  15. package/dist/src/{dynamsoft.imagecore-1.7.3.wasm → dynamsoft.imagecore-1.8.0.wasm} +0 -0
  16. package/dist/src/{dynamsoft.imageio-1.7.3.wasm → dynamsoft.imageio-1.8.0.wasm} +0 -0
  17. package/dist/src/{dynamsoft.imageio_wasm-1.7.3.js → dynamsoft.imageio_wasm-1.8.0.js} +34 -34
  18. package/dist/src/dynamsoft.lts.js +12 -34
  19. package/dist/src/{dynamsoft.pdfReader-1.7.3.wasm → dynamsoft.pdfReader-1.8.0.wasm} +0 -0
  20. package/dist/src/{dynamsoft.pdfReader_wasm-1.7.3.js → dynamsoft.pdfReader_wasm-1.8.0.js} +34 -34
  21. package/dist/src/dynamsoft.viewer.css +2 -2
  22. package/dist/src/dynamsoft.viewer.js +1 -1
  23. package/dist/src/dynamsoft.webtwain.css +43 -21
  24. package/dist/src/fastcomp/{dynamsoft.imagecore-1.7.3.wasm → dynamsoft.imagecore-1.8.0.wasm} +0 -0
  25. package/dist/src/fastcomp/{dynamsoft.imageio-1.7.3.wasm → dynamsoft.imageio-1.8.0.wasm} +0 -0
  26. package/dist/src/fastcomp/{dynamsoft.imageio_wasm-1.7.3.js → dynamsoft.imageio_wasm-1.8.0.js} +34 -34
  27. package/dist/types/Addon.Camera.d.ts +22 -4
  28. package/dist/types/Dynamsoft.Enum.d.ts +14 -0
  29. package/dist/types/Dynamsoft.d.ts +81 -2
  30. package/dist/types/WebTwain.Acquire.d.ts +37 -3
  31. package/dist/types/WebTwain.Viewer.d.ts +21 -17
  32. package/dist/types/index.d.ts +1 -1
  33. package/package.json +2 -2
  34. package/dist/addon/dbrjs/dbr-8.8.7.full.wasm +0 -0
  35. package/dist/addon/dbrjs/dbr-8.8.7.worker.js +0 -113
  36. package/dist/dist/DynamsoftServiceSetup-mips64el.deb +0 -0
  37. package/samples/AcquireImage.html +0 -69
  38. package/samples/CustomScan.html +0 -98
  39. package/samples/Dynamic Web TWAIN Online Demo.html +0 -8
  40. package/samples/Dynamic Web TWAIN Sample Code Gallery.html +0 -8
  41. package/samples/Edit.html +0 -111
  42. package/samples/LoadAndSaveImages.html +0 -103
  43. package/samples/Navigation.html +0 -197
  44. package/samples/PDFRasterizer.html +0 -88
  45. package/samples/ReadBarcode.html +0 -231
  46. package/samples/ScanOrCapture.html +0 -202
  47. package/samples/Thumbnail.html +0 -88
  48. package/samples/mobilebrowsercapture.html +0 -13
  49. /package/dist/src/{dynamsoft.crypto-1.7.3.wasm → dynamsoft.crypto-1.8.0.wasm} +0 -0
  50. /package/dist/src/{dynamsoft.imageProc-1.7.3.wasm → dynamsoft.imageProc-1.8.0.wasm} +0 -0
  51. /package/dist/src/{dynamsoft.imageProc-sn-1.7.3.wasm → dynamsoft.imageProc-sn-1.8.0.wasm} +0 -0
  52. /package/dist/src/{dynamsoft.pdfWriter-1.7.3.wasm → dynamsoft.pdfWriter-1.8.0.wasm} +0 -0
  53. /package/dist/src/fastcomp/{dynamsoft.crypto-1.7.3.wasm → dynamsoft.crypto-1.8.0.wasm} +0 -0
  54. /package/dist/src/fastcomp/{dynamsoft.imageProc-1.7.3.wasm → dynamsoft.imageProc-1.8.0.wasm} +0 -0
  55. /package/dist/src/fastcomp/{dynamsoft.pdfWriter-1.7.3.wasm → dynamsoft.pdfWriter-1.8.0.wasm} +0 -0
@@ -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 = 't0078lQAAAA6/IlIbNC7kmlEwnoekMXbQCjKCIbXQPNX5YcTlkQ1q4R4g+O1GT800Pmu8OKFOEv81ye/RJPXBdG9de9pkHxXgXq2nohPqqh9G';
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>
@@ -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 = 't0078lQAAAA6/IlIbNC7kmlEwnoekMXbQCjKCIbXQPNX5YcTlkQ1q4R4g+O1GT800Pmu8OKFOEv81ye/RJPXBdG9de9pkHxXgXq2nohPqqh9G';
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>