天天看點

CodeToHTML 列印條碼生成

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

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

<code>//=====================================================================================</code>

<code>// all rights reserved , copyright ? learun 2013</code>

<code>using</code>

<code>system;</code>

<code>system.collections;</code>

<code>system.collections.generic;</code>

<code>system.linq;</code>

<code>system.text;</code>

<code>system.text.regularexpressions;</code>

<code>system.threading.tasks;</code>

<code>namespace</code>

<code>dotnet.utilities</code>

<code>{</code>

<code>    </code><code>/// &lt;summary&gt;</code>

<code>    </code><code>/// 生成條碼傳回html</code>

<code>    </code><code>/// &lt;/summary&gt;</code>

<code>    </code><code>public</code>

<code>class</code> <code>barcodetohtml</code>

<code>    </code><code>{</code>

<code>        </code><code>public</code>

<code>static</code> <code>string</code> <code>get39(</code><code>string</code>

<code>s,</code><code>int</code>

<code>width,</code><code>int</code>

<code>height)</code>

<code>        </code><code>{</code>

<code>            </code><code>hashtable ht =</code><code>new</code>

<code>hashtable();</code>

<code>            </code><code>#region 39碼 12位</code>

<code>            </code><code>ht.add(</code><code>‘a‘</code><code>,</code><code>"110101001011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘b‘</code><code>,</code><code>"101101001011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘c‘</code><code>,</code><code>"110110100101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘d‘</code><code>,</code><code>"101011001011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘e‘</code><code>,</code><code>"110101100101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘f‘</code><code>,</code><code>"101101100101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘g‘</code><code>,</code><code>"101010011011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘h‘</code><code>,</code><code>"110101001101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘i‘</code><code>,</code><code>"101101001101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘j‘</code><code>,</code><code>"101011001101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘k‘</code><code>,</code><code>"110101010011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘l‘</code><code>,</code><code>"101101010011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘m‘</code><code>,</code><code>"110110101001"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘n‘</code><code>,</code><code>"101011010011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘o‘</code><code>,</code><code>"110101101001"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘p‘</code><code>,</code><code>"101101101001"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘q‘</code><code>,</code><code>"101010110011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘r‘</code><code>,</code><code>"110101011001"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘s‘</code><code>,</code><code>"101101011001"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘t‘</code><code>,</code><code>"101011011001"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘u‘</code><code>,</code><code>"110010101011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘v‘</code><code>,</code><code>"100110101011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘w‘</code><code>,</code><code>"110011010101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘x‘</code><code>,</code><code>"100101101011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘y‘</code><code>,</code><code>"110010110101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘z‘</code><code>,</code><code>"100110110101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘0‘</code><code>,</code><code>"101001101101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘1‘</code><code>,</code><code>"110100101011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘2‘</code><code>,</code><code>"101100101011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘3‘</code><code>,</code><code>"110110010101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘4‘</code><code>,</code><code>"101001101011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘5‘</code><code>,</code><code>"110100110101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘6‘</code><code>,</code><code>"101100110101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘7‘</code><code>,</code><code>"101001011011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘8‘</code><code>,</code><code>"110100101101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘9‘</code><code>,</code><code>"101100101101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘+‘</code><code>,</code><code>"100101001001"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘-‘</code><code>,</code><code>"100101011011"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘*‘</code><code>,</code><code>"100101101101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘/‘</code><code>,</code><code>"100100101001"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘%‘</code><code>,</code><code>"101001001001"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘$‘</code><code>,</code><code>"100100100101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘.‘</code><code>,</code><code>"110010101101"</code><code>);</code>

<code>            </code><code>ht.add(</code><code>‘ ‘</code><code>,</code><code>"100110101101"</code><code>);</code>

<code>            </code><code>#endregion</code>

<code>            </code><code>#region 39碼 9位</code>

<code>            </code><code>//ht.add(‘0‘, "000110100");</code>

<code>            </code><code>//ht.add(‘1‘, "100100001");</code>

<code>            </code><code>//ht.add(‘2‘, "001100001");</code>

<code>            </code><code>//ht.add(‘3‘, "101100000");</code>

<code>            </code><code>//ht.add(‘4‘, "000110001");</code>

<code>            </code><code>//ht.add(‘5‘, "100110000");</code>

<code>            </code><code>//ht.add(‘6‘, "001110000");</code>

<code>            </code><code>//ht.add(‘7‘, "000100101");</code>

<code>            </code><code>//ht.add(‘8‘, "100100100");</code>

<code>            </code><code>//ht.add(‘9‘, "001100100");</code>

<code>            </code><code>//ht.add(‘a‘, "100001001");</code>

<code>            </code><code>//ht.add(‘b‘, "001001001");</code>

<code>            </code><code>//ht.add(‘c‘, "101001000");</code>

<code>            </code><code>//ht.add(‘d‘, "000011001");</code>

<code>            </code><code>//ht.add(‘e‘, "100011000");</code>

<code>            </code><code>//ht.add(‘f‘, "001011000");</code>

<code>            </code><code>//ht.add(‘g‘, "000001101");</code>

<code>            </code><code>//ht.add(‘h‘, "100001100");</code>

<code>            </code><code>//ht.add(‘i‘, "001001100");</code>

<code>            </code><code>//ht.add(‘j‘, "000011100");</code>

<code>            </code><code>//ht.add(‘k‘, "100000011");</code>

<code>            </code><code>//ht.add(‘l‘, "001000011");</code>

<code>            </code><code>//ht.add(‘m‘, "101000010");</code>

<code>            </code><code>//ht.add(‘n‘, "000010011");</code>

<code>            </code><code>//ht.add(‘o‘, "100010010");</code>

<code>            </code><code>//ht.add(‘p‘, "001010010");</code>

<code>            </code><code>//ht.add(‘q‘, "000000111");</code>

<code>            </code><code>//ht.add(‘r‘, "100000110");</code>

<code>            </code><code>//ht.add(‘s‘, "001000110");</code>

<code>            </code><code>//ht.add(‘t‘, "000010110");</code>

<code>            </code><code>//ht.add(‘u‘, "110000001");</code>

<code>            </code><code>//ht.add(‘v‘, "011000001");</code>

<code>            </code><code>//ht.add(‘w‘, "111000000");</code>

<code>            </code><code>//ht.add(‘x‘, "010010001");</code>

<code>            </code><code>//ht.add(‘y‘, "110010000");</code>

<code>            </code><code>//ht.add(‘z‘, "011010000");</code>

<code>            </code><code>//ht.add(‘-‘, "010000101");</code>

<code>            </code><code>//ht.add(‘.‘, "110000100");</code>

<code>            </code><code>//ht.add(‘ ‘, "011000100");</code>

<code>            </code><code>//ht.add(‘*‘, "010010100");</code>

<code>            </code><code>//ht.add(‘$‘, "010101000");</code>

<code>            </code><code>//ht.add(‘/‘, "010100010");</code>

<code>            </code><code>//ht.add(‘+‘, "010001010");</code>

<code>            </code><code>//ht.add(‘%‘, "000101010");</code>

<code>            </code><code>s =</code><code>"*"</code>

<code>+ s.toupper() +</code><code>"*"</code><code>;</code>

<code>            </code><code>string</code>

<code>result_bin =</code><code>""</code><code>;</code><code>//二進制串</code>

<code>            </code><code>try</code>

<code>            </code><code>{</code>

<code>                </code><code>foreach</code>

<code>(</code><code>char</code>

<code>ch</code><code>in</code>

<code>s)</code>

<code>                </code><code>{</code>

<code>                    </code><code>result_bin += ht[ch].tostring();</code>

<code>                    </code><code>result_bin +=</code><code>"0"</code><code>;</code><code>//間隔,與一個機關的線條寬度相等</code>

<code>                </code><code>}</code>

<code>            </code><code>}</code>

<code>            </code><code>catch</code>

<code>{</code><code>return</code>

<code>"存在不允許的字元!"</code><code>; }</code>

<code>result_html =</code><code>""</code><code>;</code><code>//html代碼</code>

<code>color =</code><code>""</code><code>;      </code><code>//顔色</code>

<code>            </code><code>foreach</code>

<code>c</code><code>in</code>

<code>result_bin)</code>

<code>                </code><code>color = c ==</code><code>‘0‘</code>

<code>?</code><code>"#ffffff"</code>

<code>:</code><code>"#000000"</code><code>;</code>

<code>                </code><code>result_html +=</code><code>"&lt;div style=\"width:"</code>

<code>+ width +</code><code>"px;height:"</code>

<code>+ height +</code><code>"px;float:left;background:"</code>

<code>+ color +</code><code>";\"&gt;&lt;/div&gt;"</code><code>;</code>

<code>            </code><code>result_html +=</code><code>"&lt;div style=\"clear:both\"&gt;&lt;/div&gt;"</code><code>;</code>

<code>            </code><code>int</code>

<code>len = ht[</code><code>‘*‘</code><code>].tostring().length;</code>

<code>+ (width * (len + 1)) +</code><code>"px;float:left;color:#000000;text-align:center;\"&gt;"</code>

<code>+ c +</code><code>"&lt;/div&gt;"</code><code>;</code>

<code>            </code><code>return</code>

<code>"&lt;div style=\"background:#ffffff;padding:5px;font-size:"</code>

<code>+ (width * 10) +</code><code>"px;font-family:‘楷體‘;\"&gt;"</code>

<code>+ result_html +</code><code>"&lt;/div&gt;"</code><code>;</code>

<code>        </code><code>}</code>

<code>static</code> <code>string</code> <code>getean13(</code><code>string</code>

<code>checkcode_input = -1;</code><code>//輸入的校驗碼</code>

<code>            </code><code>if</code>

<code>(!regex.ismatch(s,</code><code>@"^\d{12}$"</code><code>))</code>

<code>                </code><code>if</code>

<code>(!regex.ismatch(s,</code><code>@"^\d{13}$"</code><code>))</code>

<code>                    </code><code>return</code>

<code>"存在不允許的字元!"</code><code>;</code>

<code>                </code><code>else</code>

<code>                    </code><code>checkcode_input =</code><code>int</code><code>.parse(s[12].tostring());</code>

<code>                    </code><code>s = s.substring(0, 12);</code>

<code>sum_even = 0;</code><code>//偶數位之和</code>

<code>sum_odd = 0;</code><code>//奇數位之和</code>

<code>            </code><code>for</code>

<code>(</code><code>int</code>

<code>i = 0; i &lt; 12; i++)</code>

<code>(i % 2 == 0)</code>

<code>                    </code><code>sum_odd +=</code><code>int</code><code>.parse(s[i].tostring());</code>

<code>                    </code><code>sum_even +=</code><code>int</code><code>.parse(s[i].tostring());</code>

<code>checkcode = (10 - (sum_even * 3 + sum_odd) % 10) % 10;</code><code>//校驗碼</code>

<code>(checkcode_input &gt; 0 &amp;&amp; checkcode_input != checkcode)</code>

<code>                </code><code>return</code>

<code>"輸入的校驗碼錯誤!"</code><code>;</code>

<code>            </code><code>s += checkcode;</code><code>//變成13位</code>

<code>            </code><code>// 000000000101左側42個01010右側35個校驗7個101000000000</code>

<code>            </code><code>// 6        101左側6位 01010右側5位校驗1位101000000000</code>

<code>            </code><code>result_bin +=</code><code>"000000000101"</code><code>;</code>

<code>type = ean13type(s[0]);</code>

<code>i = 1; i &lt; 7; i++)</code>

<code>                </code><code>result_bin += ean13(s[i], type[i - 1]);</code>

<code>            </code><code>result_bin +=</code><code>"01010"</code><code>;</code>

<code>i = 7; i &lt; 13; i++)</code>

<code>                </code><code>result_bin += ean13(s[i],</code><code>‘c‘</code><code>);</code>

<code>            </code><code>result_bin +=</code><code>"101000000000"</code><code>;</code>

<code>height_bottom = width * 5;</code>

<code>            </code><code>result_html +=</code><code>"&lt;div style=\"float:left;color:#000000;width:"</code>

<code>+ (width * 9) +</code><code>"px;text-align:center;\"&gt;"</code>

<code>+ s[0] +</code><code>"&lt;/div&gt;"</code><code>;</code>

<code>            </code><code>result_html +=</code><code>"&lt;div style=\"float:left;width:"</code>

<code>+ height_bottom +</code><code>"px;background:#000000;\"&gt;&lt;/div&gt;"</code><code>;</code>

<code>+ height_bottom +</code><code>"px;background:#ffffff;\"&gt;&lt;/div&gt;"</code><code>;</code>

<code>                </code><code>result_html +=</code><code>"&lt;div style=\"float:left;width:"</code>

<code>+ (width * 7) +</code><code>"px;color:#000000;text-align:center;\"&gt;"</code>

<code>+ s[i] +</code><code>"&lt;/div&gt;"</code><code>;</code>

<code>+ (width * 9) +</code><code>"px;\"&gt;&lt;/div&gt;"</code><code>;</code>

<code>"&lt;div style=\"background:#ffffff;padding:0px;font-size:"</code>

<code>        </code><code>private</code>

<code>static</code> <code>string</code> <code>ean13(</code><code>char</code>

<code>c,</code><code>char</code>

<code>type)</code>

<code>            </code><code>switch</code>

<code>(type)</code>

<code>                </code><code>case</code>

<code>‘a‘</code><code>:</code>

<code>                    </code><code>{</code>

<code>                        </code><code>switch</code>

<code>(c)</code>

<code>                        </code><code>{</code>

<code>                            </code><code>case</code>

<code>‘0‘</code><code>:</code><code>return</code>

<code>"0001101"</code><code>;</code>

<code>‘1‘</code><code>:</code><code>return</code>

<code>"0011001"</code><code>;</code>

<code>‘2‘</code><code>:</code><code>return</code>

<code>"0010011"</code><code>;</code>

<code>‘3‘</code><code>:</code><code>return</code>

<code>"0111101"</code><code>;</code><code>//011101</code>

<code>‘4‘</code><code>:</code><code>return</code>

<code>"0100011"</code><code>;</code>

<code>‘5‘</code><code>:</code><code>return</code>

<code>"0110001"</code><code>;</code>

<code>‘6‘</code><code>:</code><code>return</code>

<code>"0101111"</code><code>;</code>

<code>‘7‘</code><code>:</code><code>return</code>

<code>"0111011"</code><code>;</code>

<code>‘8‘</code><code>:</code><code>return</code>

<code>"0110111"</code><code>;</code>

<code>‘9‘</code><code>:</code><code>return</code>

<code>"0001011"</code><code>;</code>

<code>                            </code><code>default</code><code>:</code><code>return</code>

<code>"error!"</code><code>;</code>

<code>                        </code><code>}</code>

<code>                    </code><code>}</code>

<code>‘b‘</code><code>:</code>

<code>"0100111"</code><code>;</code>

<code>"0110011"</code><code>;</code>

<code>"0011011"</code><code>;</code>

<code>"0100001"</code><code>;</code>

<code>"0011101"</code><code>;</code>

<code>"0111001"</code><code>;</code>

<code>"0000101"</code><code>;</code><code>//000101</code>

<code>"0010001"</code><code>;</code>

<code>"0001001"</code><code>;</code>

<code>"0010111"</code><code>;</code>

<code>‘c‘</code><code>:</code>

<code>"1110010"</code><code>;</code>

<code>"1100110"</code><code>;</code>

<code>"1101100"</code><code>;</code>

<code>"1000010"</code><code>;</code>

<code>"1011100"</code><code>;</code>

<code>"1001110"</code><code>;</code>

<code>"1010000"</code><code>;</code>

<code>"1000100"</code><code>;</code>

<code>"1001000"</code><code>;</code>

<code>"1110100"</code><code>;</code>

<code>                </code><code>default</code><code>:</code><code>return</code>

<code>static</code> <code>string</code> <code>ean13type(</code><code>char</code>

<code>c)</code>

<code>"aaaaaa"</code><code>;</code>

<code>"aababb"</code><code>;</code>

<code>"aabbab"</code><code>;</code>

<code>"aabbba"</code><code>;</code>

<code>"abaabb"</code><code>;</code>

<code>"abbaab"</code><code>;</code>

<code>"abbbaa"</code><code>;</code><code>//中國</code>

<code>"ababab"</code><code>;</code>

<code>"ababba"</code><code>;</code>

<code>"abbaba"</code><code>;</code>

<code>    </code><code>}</code>

<code>}</code>

  

調用時傳入 13位的數字字元串("1405042033235"),寬度(2),高度(50)

barcodetohtml.getean13(string s, int width, int height);

barcodetohtml.getean13("1405042033235", 2, 50);

繼續閱讀