dwt 17.2.3 → 17.3.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.
Files changed (65) hide show
  1. package/LICENSE.txt +24 -22
  2. package/README.md +28 -28
  3. package/dist/addon/dbrjs/dbr-8.8.7.full.wasm +0 -0
  4. package/dist/addon/dbrjs/dbr-8.8.7.full.wasm.js +285 -0
  5. package/dist/addon/dbrjs/dbr-8.8.7.worker.js +113 -0
  6. package/dist/addon/dbrjs/dbr.js +22 -11
  7. package/dist/addon/dynamsoft.webtwain.addon.camera.css +7 -0
  8. package/dist/dist/DynamsoftServiceSetup-arm64.deb +0 -0
  9. package/dist/dist/DynamsoftServiceSetup-mips64el.deb +0 -0
  10. package/dist/dist/DynamsoftServiceSetup.deb +0 -0
  11. package/dist/dist/DynamsoftServiceSetup.msi +0 -0
  12. package/dist/dist/DynamsoftServiceSetup.pkg +0 -0
  13. package/dist/dist/DynamsoftServiceSetup.rpm +0 -0
  14. package/dist/dynamsoft.webtwain.min.js +258 -369
  15. package/dist/dynamsoft.webtwain.min.mjs +266 -374
  16. package/dist/src/{dynamsoft.crypto-1.7.2.wasm → dynamsoft.crypto-1.7.3.wasm} +0 -0
  17. package/dist/src/{dynamsoft.imageProc-1.7.2.wasm → dynamsoft.imageProc-1.7.3.wasm} +0 -0
  18. package/dist/src/{dynamsoft.imageProc-sn-1.7.2.wasm → dynamsoft.imageProc-sn-1.7.3.wasm} +0 -0
  19. package/dist/src/{dynamsoft.imagecore-1.7.2.wasm → dynamsoft.imagecore-1.7.3.wasm} +0 -0
  20. package/dist/src/dynamsoft.imageio-1.7.3.wasm +0 -0
  21. package/dist/src/dynamsoft.imageio_wasm-1.7.3.js +34 -0
  22. package/dist/src/dynamsoft.lts.js +2 -2
  23. package/dist/src/{dynamsoft.pdfReader-1.7.2.wasm → dynamsoft.pdfReader-1.7.3.wasm} +0 -0
  24. package/dist/src/dynamsoft.pdfReader_wasm-1.7.3.js +34 -0
  25. package/dist/src/{dynamsoft.pdfWriter-1.7.2.wasm → dynamsoft.pdfWriter-1.7.3.wasm} +0 -0
  26. package/dist/src/dynamsoft.viewer.css +2 -3
  27. package/dist/src/dynamsoft.viewer.js +1 -2
  28. package/dist/src/dynamsoft.webtwain.css +1 -29
  29. package/dist/src/fastcomp/{dynamsoft.crypto-1.7.2.wasm → dynamsoft.crypto-1.7.3.wasm} +0 -0
  30. package/dist/src/fastcomp/{dynamsoft.imageProc-1.7.2.wasm → dynamsoft.imageProc-1.7.3.wasm} +0 -0
  31. package/dist/src/fastcomp/{dynamsoft.imagecore-1.7.2.wasm → dynamsoft.imagecore-1.7.3.wasm} +0 -0
  32. package/dist/src/fastcomp/dynamsoft.imageio-1.7.3.wasm +0 -0
  33. package/dist/src/fastcomp/dynamsoft.imageio_wasm-1.7.3.js +34 -0
  34. package/dist/src/fastcomp/{dynamsoft.pdfWriter-1.7.2.wasm → dynamsoft.pdfWriter-1.7.3.wasm} +0 -0
  35. package/dist/types/Addon.Camera.d.ts +147 -97
  36. package/dist/types/Addon.PDF.d.ts +20 -11
  37. package/dist/types/Dynamsoft.Enum.d.ts +12 -1
  38. package/dist/types/Dynamsoft.d.ts +14 -18
  39. package/dist/types/WebTwain.Acquire.d.ts +26 -16
  40. package/dist/types/WebTwain.Buffer.d.ts +63 -15
  41. package/dist/types/WebTwain.IO.d.ts +1 -1
  42. package/dist/types/WebTwain.Util.d.ts +1 -1
  43. package/dist/types/WebTwain.Viewer.d.ts +107 -9
  44. package/dist/types/index.d.ts +1 -1
  45. package/dist/types/tsconfig.json +0 -1
  46. package/package.json +2 -2
  47. package/samples/{1.AcquireImage.html → AcquireImage.html} +1 -1
  48. package/samples/{2.CustomScan.html → CustomScan.html} +1 -1
  49. package/samples/{5.Edit.html → Edit.html} +1 -1
  50. package/samples/{3.LoadAndSaveImages.html → LoadAndSaveImages.html} +1 -1
  51. package/samples/{6.Navigation.html → Navigation.html} +1 -1
  52. package/samples/{4.PDFRasterizer.html → PDFRasterizer.html} +1 -1
  53. package/samples/{9.ReadBarcode.html → ReadBarcode.html} +1 -1
  54. package/samples/{10.ScanOrCapture.html → ScanOrCapture.html} +1 -1
  55. package/samples/{7.Thumbnail.html → Thumbnail.html} +1 -1
  56. package/samples/{11.mobilebrowsercapture.html → mobilebrowsercapture.html} +3 -0
  57. package/dist/addon/dbrjs/dbr-8.6.1.full.wasm +0 -0
  58. package/dist/addon/dbrjs/dbr-8.6.1.full.wasm.js +0 -134
  59. package/dist/addon/dbrjs/dbr-8.6.1.worker.js +0 -113
  60. package/dist/src/dynamsoft.imageio-1.7.2.wasm +0 -0
  61. package/dist/src/dynamsoft.imageio_wasm-1.7.2.js +0 -115
  62. package/dist/src/dynamsoft.pdfReader_wasm-1.7.2.js +0 -90
  63. package/dist/src/fastcomp/dynamsoft.imageio-1.7.2.wasm +0 -0
  64. package/dist/src/fastcomp/dynamsoft.imageio_wasm-1.7.2.js +0 -115
  65. package/samples/8.OCRADocument.html +0 -160
@@ -265,33 +265,81 @@ export interface WebTwainBuffer extends WebTwainIO {
265
265
  /**
266
266
  * Get the status of the tags.
267
267
  */
268
- GetTagList(): any;
268
+ GetTagList(): TagInfo[];
269
269
  /**
270
270
  * Get the status of the tags for a specific image.
271
271
  * @param index Specify one image.
272
272
  */
273
- GetTagListByIndex(index:number): any;
273
+ GetTagListByIndex(index:number): TagName[];
274
274
  /**
275
- * Get the current file name.
275
+ * Get the current document name.
276
276
  */
277
- GetCurrentFileName(): string;
277
+ GetCurrentDocumentName(): string;
278
278
  /**
279
- * Create the file.
280
- * @param fileName Specify the file name.
279
+ * Create the document.
280
+ * @param fileName Specify the document name.
281
281
  */
282
- CreateFile(fileName: string):boolean;
282
+ CreateDocument(documentName: string):boolean;
283
283
  /**
284
- * open the file.
285
- * @param fileName Specify the file name.
284
+ * open the document.
285
+ * @param fileName Specify the document name.
286
286
  */
287
- OpenFile(fileName: string):boolean;
287
+ OpenDocument(documentName: string):boolean;
288
288
  /**
289
- * remove the file.
290
- * @param fileName Specify the file name.
289
+ * remove the document.
291
290
  */
292
- RemoveFile():boolean;
291
+ RemoveDocument(documentName:string):boolean;
293
292
  /**
294
- * Get the info of the all files.
293
+ * Rename a document.
294
+ * @argument oldDocumentName Specify the old document name.
295
+ * @argument newDocumentName Specify the new document name.
296
+ */
297
+ RenameDocument(oldDocumentName:string, newDocumentName:string):boolean;
298
+ /**
299
+ * Get the info of the all documents.
300
+ */
301
+ GetDocumentInfoList(): DocumentInfo[];
302
+ /**
303
+ * Gets the RawData for the specified image captured from camera.
295
304
  */
296
- GetFileInfoList(): any;
305
+ GetRawDataAsync(index: number): Promise<RawData>;
306
+ }
307
+
308
+ export interface TagName {
309
+ name: string;
310
+ }
311
+
312
+ export interface TagInfo {
313
+ name: string;
314
+ imageIds: number[];
315
+ }
316
+
317
+ export interface DocumentInfo {
318
+ name: string;
319
+ imageIds: number[];
297
320
  }
321
+
322
+ export interface RawData {
323
+ displayImage:{ //Data of the display image, after filter and crop effects
324
+ data: Blob;
325
+ bitDepth: number;
326
+ height: number;
327
+ resolutionX: number;
328
+ resolutionY: number;
329
+ width: number;
330
+ },
331
+ documentData:{
332
+ angle: number; //the clockwise rotation angle of the original image
333
+ polygon: [{x:number, y:number},{x:number, y:number},{x:number, y:number},{x:number, y:number}]; //selection area
334
+ filterValue: string;
335
+ originImage:{ //Data of the original image
336
+ bitDepth: number;
337
+ data: Blob;
338
+ height: number;
339
+ width: number;
340
+ resolutionX: number;
341
+ resolutionY: number;
342
+ }
343
+ }
344
+ }
345
+
@@ -79,7 +79,7 @@ export interface WebTwainIO extends WebTwainUtil {
79
79
  /**
80
80
  * Return or set the compression type of PDF files. This is a runtime property.
81
81
  */
82
- PDFCompressionType: DynamsoftEnumsDWT.EnumDWT_PDFCompressionType;
82
+ PDFCompressionType: DynamsoftEnumsDWT.EnumDWT_PDFCompressionType | number;
83
83
  /**
84
84
  * Return or set the date when the PDF document is created.
85
85
  */
@@ -70,7 +70,7 @@ export interface WebTwainUtil {
70
70
  * @param name Specify the event
71
71
  * @param callback The event listener
72
72
  */
73
- UnregisterEvent(name: string, callback: () => void): boolean;
73
+ UnregisterEvent(name: string, callback?: (...arg: any[]) => void): boolean;
74
74
  /**
75
75
  * VersionInfo in the identity string of the Dynamic Web TWAIN library.
76
76
  */
@@ -1,5 +1,6 @@
1
1
  import { WebTwainAcquire } from "./WebTwain.Acquire";
2
- import { Resolution } from "./Addon.Camera";
2
+ import { DocumentConfiguration, Resolution } from "./Addon.Camera";
3
+ import { DynamsoftEnumsDWT } from "./Dynamsoft.Enum";
3
4
 
4
5
  export interface WebTwainViewer extends WebTwainAcquire {
5
6
  /**
@@ -193,6 +194,16 @@ export interface DynamsoftViewer {
193
194
  * [Description] When set to true, will make sure the first image in the viewer is always selected when scrolling through multiple images.
194
195
  */
195
196
  autoChangeIndex: boolean;
197
+ /**
198
+ * [Scope] Main viewer
199
+ * [Description] Return or set the selection mode used when acquiring images.
200
+ */
201
+ selectionMode: number | DynamsoftEnumsDWT.EnumDWT_SelectionMode;
202
+ /**
203
+ * [Scope] Main viewer
204
+ * [Description] Set whether to allow page dragging to reorder the pages.
205
+ */
206
+ allowPageDragging?: boolean;
196
207
  /**
197
208
  * [Scope] Main viewer
198
209
  * [Description] Return the index of the next image of the currently selected image.
@@ -234,7 +245,7 @@ export interface DynamsoftViewer {
234
245
  /**
235
246
  * [Scope] Global
236
247
  * [Description] Create a thumbnail viewer with specified settings.
237
- * @param editorSettings The thumbnailViewerSettings settings. If not set, the default setting is used.
248
+ * @param thumbnailViewerSettings The thumbnailViewerSettings settings. If not set, the default setting is used.
238
249
  */
239
250
  createThumbnailViewer(thumbnailViewerSettings?: ThumbnailViewerSettings): ThumbnailViewer;
240
251
  /**
@@ -245,6 +256,13 @@ export interface DynamsoftViewer {
245
256
  * @param ifFull Whether to display the element in full screen.
246
257
  */
247
258
  createCustomElement(element: HTMLDivElement, location?: string, ifFull?: boolean): CustomElement;
259
+ /**
260
+ * [Scope] Global
261
+ * [Description] Create a document editor with specified settings.
262
+ * [Usage Notes]If you create it multiple times, you'll receive 'A DocumentEditor already exists' error, and an existing DocumentEditor object will be returned.
263
+ * @param documentConfiguration The DocumentEditor settings. If not set, the default setting is used.
264
+ */
265
+ createDocumentEditor(documentConfiguration?: DocumentConfiguration): DocumentEditor;
248
266
  /**
249
267
  * [Scope] Global
250
268
  * [Description] Return the current UI settings (from DVS itself)
@@ -277,7 +295,19 @@ export interface DynamsoftViewer {
277
295
  * [Description] Fit the image to the window
278
296
  * @param type Specify a type to fit. (width, height, both)
279
297
  */
280
- fitWindow(type: string): void;
298
+ fitWindow(type?: 'height' | 'width'): void;
299
+ /**
300
+ * [Scope] Main viewer
301
+ * Update checkbox style
302
+ * @argument checkboxSettings Settings for checkboxex.
303
+ */
304
+ updateCheckboxStyle(checkboxSettings?: CheckboxSettings): void;
305
+ /**
306
+ * [Scope] Main viewer
307
+ * Update page number style
308
+ * @argument pageNumberSettings Settings for page numbers.
309
+ */
310
+ updatePageNumberStyle(pageNumberSettings?: PageNumberSettings): void;
281
311
  /**
282
312
  * [Description] Set the CSS class name of the specified button defined in updateUISetting.
283
313
  * @param name Specify the button.
@@ -299,9 +329,9 @@ export interface DynamsoftViewer {
299
329
  /**
300
330
  * [Scope] Global
301
331
  * [Description] Create a document webviewer with specified settings.
302
- * @param templateName The document webviewer settings. If not set, the default setting is used.
332
+ * @param templateName The document webviewer settings. If not set, the default setting is used. The allowed value is "documentCapture".
303
333
  */
304
- createTemplate(templateName?: string): DocumentViewerTemplate;
334
+ createTemplate(templateName?: string, documentConfiguration?: DocumentConfiguration): DocumentViewerTemplate;
305
335
  /**
306
336
  * [Scope] Global
307
337
  * [Description] Create a Dynamsoft Viewer instance and bind it to the WebTwain instance.
@@ -329,14 +359,14 @@ export interface DynamsoftViewer {
329
359
  * @param name Specify the event name.
330
360
  * @param callback The event listener
331
361
  */
332
- on(name: string, callback: (event?: any, event1?: any, event2?: any) => void): void;
362
+ on(eventName: string, callback: (...param: any[]) => void): void;
333
363
  /**
334
364
  * [Scope] Main viewer
335
365
  * [Description] Remove the event handler.
336
366
  * @param eventName Specify the event name.
337
367
  * @param callback The event listener.
338
368
  */
339
- off(eventName: string, callback?: () => void): void;
369
+ off(eventName: string, callback?: (...param: any[]) => void): void;
340
370
  }
341
371
  export interface EditorSettings {
342
372
  /**
@@ -543,6 +573,8 @@ export interface ThumbnailViewerSettings {
543
573
  * Allow any CSS rules
544
574
  */
545
575
  selectedPageBackground?: string;
576
+ checkbox?: CheckboxSettings;
577
+ pageNumber?: PageNumberSettings;
546
578
  }
547
579
  export interface CustomElement {
548
580
  /**
@@ -601,20 +633,32 @@ export interface ThumbnailViewer {
601
633
  * [Description] Set the view mode.
602
634
  */
603
635
  updateViewMode(viewMode: ViewMode): void;
636
+ /**
637
+ * [Scope] Thumbnail viewer
638
+ * Update checkbox style
639
+ * @argument checkboxSettings Settings for checkboxex.
640
+ */
641
+ updateCheckboxStyle(checkboxSettings?: CheckboxSettings): void;
642
+ /**
643
+ * [Scope] Thumbnail viewer
644
+ * Update page number style
645
+ * @argument pageNumberSettings Settings for page numbers.
646
+ */
647
+ updatePageNumberStyle(pageNumberSettings?: PageNumberSettings): void;
604
648
  /**
605
649
  * [Scope] Thumbnail viewer
606
650
  * [Description] Specify an event listener for the viewer event.
607
651
  * @param name Specify the event name.
608
652
  * @param callback The event listener.
609
653
  */
610
- on(name: string, callback: (event?: any, event1?: any, event2?: any) => void): void;
654
+ on(eventName: string, callback: (...param: any[]) => void): void;
611
655
  /**
612
656
  * [Scope] Thumbnail viewer
613
657
  * [Description] Remove the event handler.
614
658
  * @param eventName Specify the event name.
615
659
  * @param callback The event listener.
616
660
  */
617
- off(eventName: string, callback?: () => void): void;
661
+ off(eventName: string, callback?: (...param: any[]) => void): void;
618
662
  /**
619
663
  * [Scope] Thumbnail viewer
620
664
  * [Description] Where to put the thumbnail view. The allowed values are left, top, right, bottom. The default value is left.
@@ -739,6 +783,23 @@ export interface ThumbnailViewer {
739
783
  */
740
784
  selectedImageBackground: string;
741
785
  }
786
+ export interface DocumentEditor {
787
+ /**
788
+ * [Scope] DocumentEditor viewer
789
+ * [Description] Show the DocumentEditor viewer.
790
+ */
791
+ show(): void;
792
+ /**
793
+ * [Scope] DocumentEditor viewer
794
+ * [Description] Hide the DocumentEditor viewer.
795
+ */
796
+ hide(): void;
797
+ /**
798
+ * [Scope] DocumentEditor viewer
799
+ * [Description] Delete the DocumentEditor viewer.
800
+ */
801
+ dispose(): void;
802
+ }
742
803
 
743
804
  export interface ViewMode {
744
805
  columns?: number;
@@ -807,3 +868,40 @@ export interface DocumentViewerTemplate {
807
868
  */
808
869
  getCustomElement(): CustomElement;
809
870
  }
871
+ export interface CheckboxSettings {
872
+ visibility?: string; //"visible":hidden", default:"hidden"
873
+ width?: number | string; //default: "24px", number unit: px, string value: "24px"/"10%", relative to parent container
874
+ height?: number | string; //default: "24px", number unit: px, string value: "24px"/"10%", relative to parent container
875
+ background?: string; //default: "#ffffff"
876
+ borderWidth?: number | string; //default: "2px", unit: px, percentage value not supported
877
+ borderColor?: string; //default : "#000000"
878
+ checkMarkColor?: string; //default: "#000000"
879
+ checkMarkLineWidth?: number | string; //default: "2px", unit: px, percentage value not supported
880
+ borderRadius?: number | string; //default: 0, number unit: px, string value: "10px"/"10%", relative to itself
881
+ opacity?: number; //default: 0.5, value range [0-1], value greater 1 defaults to 1
882
+ left?: number | string; //default: 0, number unit: px, string value: "10px"/"10%", relative to parent container
883
+ top?: number | string; //default: 0, number unit: px, string value: "10px"/"10%", relative to parent container
884
+ right?: number | string; //default: "", number unit: px, string value: "10px"/"10%", relative to parent container
885
+ bottom?: number | string; //default: "", number unit: px, string value: "10px"/"10%", relative to parent container
886
+ translateX?: number | string; //default: "", number unit: px, string value: "10px"/"10%", relative to itself
887
+ translateY?: number | string; //default: ""; number unit: px, string value: "10px"/"10%", relative to itself
888
+ }
889
+ export interface PageNumberSettings {
890
+ visibility?: string; //"visible": hidden", default: "hidden"
891
+ width?: number | string; //default: "24px", number unit: px, string value: "24px"/"10%", relative to parent container
892
+ height?: number | string, //default: "24px", number unit: px, string value: "24px"/"10%", relative to parent container
893
+ background?: string; //default: "#ffffff"
894
+ borderWidth?: number | string; //default: "1px", unit: px, percentage value not supported
895
+ borderColor?: string; //default: "#a79898"
896
+ borderRadius?: number | string; //default: "50%", number unit: px, string value: "10px"/"10%", relative to itself
897
+ opacity?: number; //default: 0.5, value range [0-1], value greater 1 defaults to 1
898
+ color?: string; //default : "#000000", supports #16 hexadecimal only
899
+ fontFamily?: string; //default : "sans-serif"
900
+ fontSize?: number | string; //default: 12, unit: px, percentage value not supported
901
+ left?: number | string; //default: "", number unit: px, string value: "10px"/"10%", relative to parent container
902
+ top?: number | string; //default: "", number unit: px, string value: "10px"/"10%", relative to parent container
903
+ right?: number | string; //default: 0, number unit: px, string value: "10px"/"10%", relative to parent container
904
+ bottom?: number | string; //default: 0, number unit: px, string value: "10px"/"10%", relative to parent container
905
+ translateX?: number | string; //default: "", number unit: px, string value: "10px"/"10%", relative to itself
906
+ translateY?: number | string; //default: "", number unit: px, string value: "10px"/"10%", relative to itself
907
+ }
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * Copyright 2022, Dynamsoft Corporation
16
16
  * Author: Dynamsoft Support Team
17
- * Version: 17.2
17
+ * Version: 17.3
18
18
  */
19
19
  import Dynamsoft from "./Dynamsoft";
20
20
  export default Dynamsoft;
@@ -18,7 +18,6 @@
18
18
  "forceConsistentCasingInFileNames": true
19
19
  },
20
20
  "files": [
21
- "dwt-tests.ts",
22
21
  "index.d.ts"
23
22
  ]
24
23
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "dwt",
3
- "version": "17.2.3",
3
+ "version": "17.3.0",
4
4
  "author": {
5
5
  "name": "Dynamsoft",
6
6
  "url": "https://www.dynamsoft.com"
7
7
  },
8
8
  "license": "SEE LICENSE IN LICENSE.txt",
9
9
  "dependencies": {
10
- "dynamsoft-javascript-barcode": "8.2.5"
10
+ "dynamsoft-javascript-barcode": "8.8.7"
11
11
  },
12
12
  "description": "Dynamic Web TWAIN is a TWAIN/ICA/SANE-based scanning SDK software specifically designed for web applications running on Windows/macOS/Linux. With just a few lines of code, you can develop robust applications to scan documents from TWAIN/ICA/SANE-compatible scanners, edit the scanned images and save them to a local/server file system or document repository.",
13
13
  "devDependencies": {},
@@ -18,7 +18,7 @@
18
18
 
19
19
  <script type="text/javascript">
20
20
  Dynamsoft.DWT.ResourcesPath = "../dist";
21
- Dynamsoft.DWT.ProductKey = 't00901wAAAFGokK55GCTHFf8RWZ8bKjNRD1O+Gf0xA6MUdkmYI6zSueLnBjy55bNxl/YW1HkZykS/h0xYHBuFFwIDbexR567425Cx3hnuwAewN5DyXtRd/ATLnyy+';
21
+ Dynamsoft.DWT.ProductKey = 't0078lQAAAK/ZNBgqN1cFmBBaLYa3LiG4SDylHDPRco+UvWI+Tp4Rfekc6UVBU0VdL0bdydIHi2MiOAOUlKmLyJpEwlITGkUChWTejhsEwx9k';
22
22
  Dynamsoft.DWT.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
23
23
  window.onload = function () {
24
24
  if (Dynamsoft.Lib.env.bMobile) {
@@ -38,7 +38,7 @@
38
38
  <div id="dwtcontrolContainer"></div>
39
39
  <script type="text/javascript">
40
40
  Dynamsoft.DWT.ResourcesPath = "../dist";
41
- Dynamsoft.DWT.ProductKey = 't00901wAAAFGokK55GCTHFf8RWZ8bKjNRD1O+Gf0xA6MUdkmYI6zSueLnBjy55bNxl/YW1HkZykS/h0xYHBuFFwIDbexR567425Cx3hnuwAewN5DyXtRd/ATLnyy+';
41
+ Dynamsoft.DWT.ProductKey = 't0078lQAAAK/ZNBgqN1cFmBBaLYa3LiG4SDylHDPRco+UvWI+Tp4Rfekc6UVBU0VdL0bdydIHi2MiOAOUlKmLyJpEwlITGkUChWTejhsEwx9k';
42
42
  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
43
43
  window.onload = function () {
44
44
  if (Dynamsoft.Lib.env.bMobile) {
@@ -22,7 +22,7 @@
22
22
 
23
23
  <script type="text/javascript">
24
24
  Dynamsoft.DWT.ResourcesPath = "../dist";
25
- Dynamsoft.DWT.ProductKey = 't00901wAAAFGokK55GCTHFf8RWZ8bKjNRD1O+Gf0xA6MUdkmYI6zSueLnBjy55bNxl/YW1HkZykS/h0xYHBuFFwIDbexR567425Cx3hnuwAewN5DyXtRd/ATLnyy+';
25
+ Dynamsoft.DWT.ProductKey = 't0078lQAAAK/ZNBgqN1cFmBBaLYa3LiG4SDylHDPRco+UvWI+Tp4Rfekc6UVBU0VdL0bdydIHi2MiOAOUlKmLyJpEwlITGkUChWTejhsEwx9k';
26
26
  window.onload = function () {
27
27
  Dynamsoft.DWT.Containers = [{ContainerId:'dwtcontrolContainer', Width:700, Height:800}];
28
28
  Dynamsoft.DWT.Load();
@@ -25,7 +25,7 @@
25
25
 
26
26
  <script type="text/javascript">
27
27
  Dynamsoft.DWT.ResourcesPath = "../dist";
28
- Dynamsoft.DWT.ProductKey = 't00901wAAAFGokK55GCTHFf8RWZ8bKjNRD1O+Gf0xA6MUdkmYI6zSueLnBjy55bNxl/YW1HkZykS/h0xYHBuFFwIDbexR567425Cx3hnuwAewN5DyXtRd/ATLnyy+';
28
+ Dynamsoft.DWT.ProductKey = 't0078lQAAAK/ZNBgqN1cFmBBaLYa3LiG4SDylHDPRco+UvWI+Tp4Rfekc6UVBU0VdL0bdydIHi2MiOAOUlKmLyJpEwlITGkUChWTejhsEwx9k';
29
29
  window.onload = function () {
30
30
  Dynamsoft.DWT.Containers = [{ContainerId:'dwtcontrolContainer', Width:600, Height:800}];
31
31
  Dynamsoft.DWT.Load();
@@ -40,7 +40,7 @@
40
40
 
41
41
  <script type="text/javascript">
42
42
  Dynamsoft.DWT.ResourcesPath = "../dist";
43
- Dynamsoft.DWT.ProductKey = 't00901wAAAFGokK55GCTHFf8RWZ8bKjNRD1O+Gf0xA6MUdkmYI6zSueLnBjy55bNxl/YW1HkZykS/h0xYHBuFFwIDbexR567425Cx3hnuwAewN5DyXtRd/ATLnyy+';
43
+ Dynamsoft.DWT.ProductKey = 't0078lQAAAK/ZNBgqN1cFmBBaLYa3LiG4SDylHDPRco+UvWI+Tp4Rfekc6UVBU0VdL0bdydIHi2MiOAOUlKmLyJpEwlITGkUChWTejhsEwx9k';
44
44
  window.onload = function () {
45
45
  Dynamsoft.DWT.Containers = [{ContainerId:'dwtcontrolContainer', Width:700, Height:600}];
46
46
  Dynamsoft.DWT.Load();
@@ -15,7 +15,7 @@
15
15
  <div id="dwtcontrolContainer"></div>
16
16
  <script type="text/javascript">
17
17
  Dynamsoft.DWT.ResourcesPath = "../dist";
18
- Dynamsoft.DWT.ProductKey = 't00901wAAAFGokK55GCTHFf8RWZ8bKjNRD1O+Gf0xA6MUdkmYI6zSueLnBjy55bNxl/YW1HkZykS/h0xYHBuFFwIDbexR567425Cx3hnuwAewN5DyXtRd/ATLnyy+';
18
+ Dynamsoft.DWT.ProductKey = 't0078lQAAAK/ZNBgqN1cFmBBaLYa3LiG4SDylHDPRco+UvWI+Tp4Rfekc6UVBU0VdL0bdydIHi2MiOAOUlKmLyJpEwlITGkUChWTejhsEwx9k';
19
19
  Dynamsoft.DWT.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
20
20
  window.onload = function () {
21
21
  if (Dynamsoft.Lib.env.bMobile) {
@@ -22,7 +22,7 @@
22
22
  </div>
23
23
  <script type="text/javascript">
24
24
  Dynamsoft.DWT.ResourcesPath = "../dist";
25
- Dynamsoft.DWT.ProductKey = 't00901wAAAFGokK55GCTHFf8RWZ8bKjNRD1O+Gf0xA6MUdkmYI6zSueLnBjy55bNxl/YW1HkZykS/h0xYHBuFFwIDbexR567425Cx3hnuwAewN5DyXtRd/ATLnyy+';
25
+ Dynamsoft.DWT.ProductKey = 't0078lQAAAK/ZNBgqN1cFmBBaLYa3LiG4SDylHDPRco+UvWI+Tp4Rfekc6UVBU0VdL0bdydIHi2MiOAOUlKmLyJpEwlITGkUChWTejhsEwx9k';
26
26
  Dynamsoft.DWT.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
27
27
  window.onload = function () {
28
28
  if (Dynamsoft.Lib.env.bMobile) {
@@ -27,7 +27,7 @@
27
27
  <script type="text/javascript">
28
28
  Dynamsoft.DWT.ResourcesPath = "../dist";
29
29
  Dynamsoft.DWT.UseCameraAddonWasm = true;
30
- Dynamsoft.DWT.ProductKey = 't00901wAAAFGokK55GCTHFf8RWZ8bKjNRD1O+Gf0xA6MUdkmYI6zSueLnBjy55bNxl/YW1HkZykS/h0xYHBuFFwIDbexR567425Cx3hnuwAewN5DyXtRd/ATLnyy+';
30
+ Dynamsoft.DWT.ProductKey = 't0078lQAAAK/ZNBgqN1cFmBBaLYa3LiG4SDylHDPRco+UvWI+Tp4Rfekc6UVBU0VdL0bdydIHi2MiOAOUlKmLyJpEwlITGkUChWTejhsEwx9k';
31
31
  Dynamsoft.DWT.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
32
32
  Dynamsoft.DWT.Containers = [{ ContainerId: 'dwtcontrolContainer', Width: 600, Height: 800 }];
33
33
  var bWASMCamera = true, bWASM = false;
@@ -18,7 +18,7 @@
18
18
 
19
19
  <script type="text/javascript">
20
20
  Dynamsoft.DWT.ResourcesPath = "../dist";
21
- Dynamsoft.DWT.ProductKey = 't00901wAAAFGokK55GCTHFf8RWZ8bKjNRD1O+Gf0xA6MUdkmYI6zSueLnBjy55bNxl/YW1HkZykS/h0xYHBuFFwIDbexR567425Cx3hnuwAewN5DyXtRd/ATLnyy+';
21
+ Dynamsoft.DWT.ProductKey = 't0078lQAAAK/ZNBgqN1cFmBBaLYa3LiG4SDylHDPRco+UvWI+Tp4Rfekc6UVBU0VdL0bdydIHi2MiOAOUlKmLyJpEwlITGkUChWTejhsEwx9k';
22
22
  window.onload = function () {
23
23
  if (Dynamsoft && (!Dynamsoft.Lib.product.bChromeEdition)) {
24
24
  var ObjString = [];
@@ -5,6 +5,9 @@
5
5
  </head>
6
6
  <body>
7
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>
8
11
  <img style="height:300px; width:300px;" src="data:image/png;base64,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" />
9
12
  </body>
10
13
  </html>