-
Notifications
You must be signed in to change notification settings - Fork 45
Expand file tree
/
Copy pathREADME.html
More file actions
212 lines (193 loc) · 15.6 KB
/
README.html
File metadata and controls
212 lines (193 loc) · 15.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="data:image/x-icon;base64,AAABAAIAICAAAAEACACoCAAAJgAAABAQAAABAAgAaAUAAM4IAAAoAAAAIAAAAEAAAAABAAgAAAAAAAAEAAAAAAAAAAAAAAABAAAAAQAAAAAAABON/gAUjf4AGI/+AB+T/gAgk/4AKJf+ACuZ/gAynP4AOJ/+AD2h/gBBov4ARaX+AEim/gBLqP4AT6r+AFCq/gBWrf4AXbD+AGm2/gBuuf4Adbz+AHu//gB8v/4AgcL+AIXE/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAGAwVAAAAABUMFwAAAAAAAAAAAAAAAAAAAAAAAAAADAEBARQAAAAAFAEBAQoAAAAAAAAAAAAAAAAAAAAAEAEBAQEBFAAAAAAUAQEBAQEMAAAAAAAAAAAAAAAAAAUBAQEBAQEUAAAAABQBAQEBAQEEAAAAAAAAAAAAAAADAQEBAQEBARQAAAAAFAEBAQEBAQEBAAAAAAAAAAAAAwEBAQEBAQEBFAAAAAAUAQEBAQEBAQEBAAAAAAAAAAUBAQEBAQEBARAAAAAAAAAQAwEBAQEBAQEEAAAAAAAQAQEBAQEBAQ0AAAAAAAAAAAAAEAEBAQEBAQEMAAAAAAEBAQEBAQEXAAAAAAAAAAAAAAAAGAEBAQEBAQEAAAANAQEBAQEBFwAAAAAAAAAAAAAAAAAAGAEBAQEBAQkAGAEBAQEBAQ0AAAAAAAAAAAAAAAAAAAAAEAEBAQEBARgMAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBDAgBAQEBAQ4AAAAAAAAAAAAAAAAAAAAAAAARAQEBAQEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGBgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAABgYGBgYIDAEBAwEBDAAAAAAAAAAAAAAAAAAAAAAAABABAwEDAQwYAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBGAABAQEBAQEKAAAAAAAAAAAAAAAAAAAAAA0BAQEBAQEAAA4BAQEBAQETAAAAAAAAAAAAAAAAAAAXAQEBAQEBDAAAAAEBAQEBAQETAAAAAAAAAAAAAAAAFQEBAQEBAQEAAAAAEgEBAQEBAQEKAAAAAAAAAAAAAAoBAQEBAQEBEAAAAAAABgEBAQEBAQEBCgAAAAAAAAwBAQEBAQEBAQUAAAAAAAAAAwEBAQEBAQEBFAAAAAAUAQEBAQEBAQEDAAAAAAAAAAAAAwEBAQEBAQEUAAAAABQBAQEBAQEBAwAAAAAAAAAAAAAABgEBAQEBARQAAAAAFAEBAQEBAQUAAAAAAAAAAAAAAAAAEgEBAQEBFAAAAAAUAQEBAQEQAAAAAAAAAAAAAAAAAAAAAA4BAQEUAAAAABQBAQEMAAAAAAAAAAAAAAAAAAAAAAAAAAAYEBgAAAAAGA4YAAAAAAAAAAAAAAD/48f//4PB//4DwH/8A8A/+APAH/ADwA/gB+AHwB/4A8A//AOAf/4BAP//AAH//4AB//+A//////////////////////////8D///AAf//gAH//4CA//8BgH/+AcA//APAH/gD4AfgB/ADwA/4A8Af/APAP/4DwH//g8H//+PH/ygAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAE43+AB+T/gAtmf4ANJ3+AD2h/gBBo/4ASqf+AEuo/gBOqf4AUar+AFOs/gBUrP4AWK7+AF2w/gBhs/4AcLr+AHS7/gB4vv4AgcL9AIfE/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAOCQAACQ4AAAAAAAAAAA0BAQYAAAYBAQwAAAAAAAUBAQEGAAAGAQEBBAAAAA0BAQEMAAAAAAwBAQEMAAABAQETAAAAAAAAEwEBAQAPAQEJAAAAAAAAAAAMAQEOEQ8PAAAAAAAAAAAAAA8PEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAICAAAAAAAAAAAAAAICAw8BAQcAAAAAAAAAAAwBAQ4AAQEBEgAAAAAAABMBAQEAAA4BAQEHAAAAAAkBAQENAAAABQEBAQYAAAYBAQEFAAAAAAAOAQEGAAAGAQENAAAAAAAAAAAPDAAADA8AAAAAAPmfAADhhwAAwYMAAIPBAACH4QAAD/AAAB/4AAD//wAA//8AAB/4AAAP8AAAh+EAAIPBAADBgwAA4YcAAPmfAAA=" type="image/x-icon" />
<title>Dynamsoft Barcode Reader JS — README</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
color: #24292e;
background: #ffffff;
line-height: 1.6;
padding: 0 20px 60px;
}
.container {
max-width: 860px;
margin: 0 auto;
}
/* Header */
.header {
text-align: center;
padding: 40px 0 24px;
border-bottom: 2px solid #e1e4e8;
margin-bottom: 32px;
}
.header svg { height: 48px; margin-bottom: 16px; }
.header h1 { font-size: 1.8em; font-weight: 600; margin-bottom: 8px; }
.header p { color: #586069; font-size: 1.05em; }
/* Quick Start card */
.quick-start {
background: #f0f7ff;
border: 1px solid #c8e1ff;
border-radius: 8px;
padding: 20px 28px;
margin-bottom: 32px;
}
.quick-start h2 { font-size: 1.15em; color: #0366d6; margin-bottom: 12px; }
.quick-start ol { padding-left: 20px; }
.quick-start li { margin-bottom: 6px; }
.quick-start code {
background: #e8f0fe;
padding: 2px 6px;
border-radius: 3px;
font-size: 0.92em;
}
.quick-start a { color: #0366d6; }
/* Sections */
h2 {
font-size: 1.3em;
font-weight: 600;
margin: 32px 0 12px;
padding-bottom: 8px;
border-bottom: 1px solid #e1e4e8;
}
h3 { font-size: 1.05em; font-weight: 600; margin: 20px 0 8px; }
p { margin-bottom: 12px; }
ul, ol { padding-left: 24px; margin-bottom: 12px; }
li { margin-bottom: 4px; }
a { color: #0366d6; text-decoration: none; }
a:hover { text-decoration: underline; }
code {
background: #f6f8fa;
padding: 2px 6px;
border-radius: 3px;
font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;
font-size: 0.9em;
}
/* Browser table */
table {
border-collapse: collapse;
margin-bottom: 16px;
width: auto;
}
th, td {
border: 1px solid #e1e4e8;
padding: 8px 16px;
text-align: center;
}
th { background: #f6f8fa; font-weight: 600; }
/* Callout */
.callout {
background: #fffbdd;
border: 1px solid #f9c513;
border-radius: 6px;
padding: 12px 16px;
margin: 12px 0;
font-size: 0.95em;
}
.callout-note {
background: #f1f8ff;
border-color: #79b8ff;
}
/* Footer */
.footer {
margin-top: 48px;
padding-top: 20px;
border-top: 1px solid #e1e4e8;
color: #586069;
font-size: 0.9em;
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<!-- Dynamsoft logo (inline SVG, from logo-dynamsoft-black.svg) -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 159 39"><style>.st0{fill:#323234}.st1{fill:#F99D31}</style><path class="st0" d="M0,5.3h6.9c4.8,0,7.4,2.6,7.4,8.2v10.8c0,5.6-2.6,8.2-7.4,8.2H0V5.3z M4.7,28.7h1.6c2.5,0,3.4-0.9,3.4-3.8V12.9c0-2.9-0.9-3.8-3.4-3.8H4.7V28.7z"/><path class="st0" d="M26.6,12.2h4.3L25.6,34c-0.9,3.7-2.6,4.9-5.8,4.9H18v-3.5h1c2.1,0,2.8-1.1,2.8-3.3c0-0.8-0.2-1.7-0.5-2.7L17,12.2h4.3l2.7,13h0.1L26.6,12.2z"/><path class="st0" d="M33.3,32.5V12.2h4v2c1.8-1.5,2.7-2.4,5.1-2.4c2.2,0,3.5,1.6,3.5,4.3v16.4h-4.2V16.8c0-1-0.6-1.5-1.5-1.5c-0.9,0-1.7,0.6-2.7,1.3v15.9H33.3z"/><path class="st0" d="M49.6,18.2c0.2-4.1,2.8-6.3,6.8-6.3c3.9,0,6.2,1.8,6.2,5.5v13c0,0.6,0.2,1.5,0.3,2.2h-4c0-0.6-0.2-1.1-0.2-1.6c-1.6,1.3-2.9,2-4.9,2c-2.9,0-4.3-2-4.3-4.6c0-4.5,2.9-6.9,9-9.2v-1.2c0-1.7-0.7-2.6-2.1-2.6c-1.9,0-2.3,1.1-2.4,2.9H49.6z M58.4,22.2c-3.8,2.2-4.8,3.6-4.8,5.4c0,1.3,0.7,1.8,2,1.8c1.2,0,2.1-0.9,2.8-1.9V22.2z"/><path class="st0" d="M75.3,32.5V16.8c0-1-0.6-1.5-1.5-1.5c-0.9,0-1.7,0.6-2.7,1.3v15.9h-4.2V12.2h4v2c1.8-1.5,2.7-2.4,4.7-2.4c2.1,0,2.8,0.8,3.7,2.4c2-2,3.2-2.4,4.7-2.4c2.6,0,4,1.6,4,4.3v16.4h-4.2V16.8c0-1-0.7-1.5-1.5-1.5c-0.9,0-1.7,0.6-2.7,1.3v15.9H75.3z"/><path class="st0" d="M151.8,27.2h-1v-0.9h3.1v0.9h-1v5.3h-1.1V27.2z"/><path class="st0" d="M158.9,26.3v6.2h-0.9v-4.9h0l-1,4.9h-0.5l-1-4.9h0v4.9h-0.9v-6.2h1.4l0.8,3.6h0l0.8-3.6H158.9z"/><polygon class="st0" points="118.9,0 114,0 116.5,6.3"/><path class="st1" d="M99.7,17.8c-0.3-1.6-1.1-2.5-2.4-2.5c-1.1,0-1.9,0.6-1.9,1.6c0,3.2,7.9,4.5,7.9,10.5c0,3.6-2.5,5.5-5.9,5.5c-3.7,0-5.8-2.1-6.5-5.7l3.7-1c0.3,1.7,0.9,3.2,2.8,3.2c1.1,0,1.9-0.6,1.9-1.8c0-3.5-7.9-4.8-7.9-10.4c0-3.2,2.5-5.4,5.7-5.4c3.3,0,5.5,2.2,6.2,5.4L99.7,17.8z"/><path class="st1" d="M130.5,15.7H128v-3.5h2.5V9.7c0-3.3,1.7-4.8,4.7-4.8h2.1v3.5h-1.2c-1,0-1.4,0.4-1.4,1.4v2.5h2.4v3.5h-2.4v16.8h-4.2V15.7z"/><path class="st1" d="M138.5,15.7v-3.5h2.3V6.7h4.2v5.5h2.8v3.5h-2.8v11.7c0,1.1,0.5,1.7,1.4,1.7h1.4v3.6c-0.6,0.2-1.1,0.2-2.1,0.2c-3.2,0-4.9-1.5-4.9-4.6V15.7H138.5z"/><path class="st1" d="M114.7,15.7v-4.2c-4.7,0.7-8.4,4.5-9,9.2h4.2C110.4,18.2,112.3,16.3,114.7,15.7z"/><path class="st1" d="M123,20.6h4.2c-0.7-4.7-4.4-8.5-9.1-9.2v4.2C120.5,16.2,122.4,18.2,123,20.6z"/><path class="st1" d="M110,24h-4.2c0.8,4.6,4.4,8.2,9,8.9v-4.2C112.4,28.1,110.6,26.3,110,24z"/><path class="st1" d="M118.1,28.7v4.2c4.6-0.7,8.3-4.3,9.1-8.9h-4.2C122.3,26.3,120.4,28.1,118.1,28.7z"/></svg>
<h1>Barcode Reader JavaScript Edition</h1>
<p>Sample code for building web-based barcode scanning applications</p>
</div>
<div class="quick-start">
<h2>Quick Start</h2>
<ol>
<li>Open <a href="./index.html"><strong>index.html</strong></a> to browse all samples with live demo links.</li>
<li>Or double-click any HTML in <code>basics/</code> to run it immediately (internet required for CDN).</li>
<li>For framework samples (<code>frameworks/</code>), run <code>npm install</code> in the desired subfolder, then follow that subfolder’s README for the correct commands.</li>
</ol>
</div>
<h2>System Requirements</h2>
<h3>Secure Context (HTTPS Deployment)</h3>
<p>
When deploying your application/website for production, make sure to serve it via a secure HTTPS connection. This is required for two reasons:
</p>
<ul>
<li>Access to the camera video stream is only granted in a security context. Most browsers impose this restriction.</li>
<li>Dynamsoft License requires a secure context to work.</li>
</ul>
<p class="callout callout-note">
Some browsers like Chrome may grant access for <code>http://127.0.0.1</code> and <code>http://localhost</code> or even for pages opened directly from the local disk (<code>file:///...</code>). This can be helpful for temporary development and testing.
</p>
<h3>Browser Compatibility</h3>
<table>
<tr><th>Browser</th><th>Version</th></tr>
<tr><td>Chrome</td><td>v78+</td></tr>
<tr><td>Firefox</td><td>v68+</td></tr>
<tr><td>Edge</td><td>v79+</td></tr>
<tr><td>Safari</td><td>v14.5+</td></tr>
</table>
<h2>License</h2>
<p>
A default trial license is included which allows you to test the sample apps for up to 24 hours.
You can <a href="https://www.dynamsoft.com/customer/license/trialLicense?product=dbr&package=js&utm_source=sampleReadme">request a 30-day trial license</a> via the Dynamsoft website to evaluate further.
</p>
<p class="callout">
<strong>Important:</strong> Once your trial license expires, the SDK will throw an error and cease to function.
Visit the <a href="https://www.dynamsoft.com/customer/license/trialLicense?product=dbr&utm_source=sampleReadme&package=js">Dynamsoft Customer Portal</a>
to view your trial license details. The trial period can be extended to a total of 60 days.
</p>
<h2>Running the Samples Locally</h2>
<p>
The standalone samples in the <code>basics/</code> folder (<code>hello-world.html</code>, <code>scan-a-single-barcode.html</code>, <code>read-an-image.html</code>) and scenario samples load the SDK from a CDN, so you can open them directly by double-clicking — no web server required (an internet connection is needed).
</p>
<p>
To browse all available samples, open <a href="./index.html"><code>index.html</code></a> in your browser — it links to every sample in the repository.
</p>
<p>
For framework samples, follow the instructions in each subfolder's README (typically <code>npm install</code> then <code>npm run dev</code>).
</p>
<p>
If you need a web server for standalone or scenario samples (for example, to serve SDK resources from a local <code>dist/</code> folder), here's a quick method using <a href="https://code.visualstudio.com/">Visual Studio Code</a>:
</p>
<ol>
<li>Install the <a href="https://marketplace.visualstudio.com/items?itemName=yandeu.five-server">Five Server</a> extension from the VS Code Marketplace.</li>
<li>Right-click on an HTML file and select "Open with Five Server". This will serve the application at <code>http://127.0.0.1:5500/</code>.</li>
</ol>
<h2>Sample Folders</h2>
<ul>
<li><strong><code>basics/</code></strong> — Three foundational samples: hello-world, scan-a-single-barcode, and read-an-image.</li>
<li><strong><code>scenarios/</code></strong> — Real-world use cases: inventory scanning, VIN reading, GS1 parsing, and more.</li>
<li><strong><code>frameworks/</code></strong> — Integrations for Angular, React, Vue, Next.js, Svelte, Blazor, Capacitor, Electron, and others.</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?utm_source=sampleReadme">Developer Guide</a></li>
<li><a href="https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/index.html?utm_source=sampleReadme">API Reference</a></li>
</ul>
<h2>Support</h2>
<p>
Questions? <a href="https://www.dynamsoft.com/company/contact?utm_source=sampleReadme">Contact Dynamsoft support</a>.
</p>
<h2>Official Online Demo</h2>
<p>
<a href="https://demo.dynamsoft.com/barcode-reader-js"><strong>Official Online Demo</strong></a>: Try the Dynamsoft Barcode Reader JavaScript Edition demo (written in Vue) and see how it works in different modes!
</p>
<div class="footer">
<p>© Dynamsoft. All rights reserved. | <a href="https://www.dynamsoft.com/">dynamsoft.com</a></p>
</div>
</div>
</body>
</html>