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

//=====================================================================================

// All Rights Reserved , Copyright ? Learun 2013

//=====================================================================================

using
System;

using
System.Collections;

using
System.Collections.Generic;

using
System.Linq;

using
System.Text;

using
System.Text.RegularExpressions;

using
System.Threading.Tasks;

namespace
DotNet.Utilities

{

    /// <summary>

    /// 生成条码返回html

    /// </summary>

    public
class BarCodeToHTML

    {

        public
static string Get39(string
s, int
width, int
height)

        {

            Hashtable ht = new
Hashtable();

            #region 39码 12位

            ht.Add(‘A‘, "110101001011");

            ht.Add(‘B‘, "101101001011");

            ht.Add(‘C‘, "110110100101");

            ht.Add(‘D‘, "101011001011");

            ht.Add(‘E‘, "110101100101");

            ht.Add(‘F‘, "101101100101");

            ht.Add(‘G‘, "101010011011");

            ht.Add(‘H‘, "110101001101");

            ht.Add(‘I‘, "101101001101");

            ht.Add(‘J‘, "101011001101");

            ht.Add(‘K‘, "110101010011");

            ht.Add(‘L‘, "101101010011");

            ht.Add(‘M‘, "110110101001");

            ht.Add(‘N‘, "101011010011");

            ht.Add(‘O‘, "110101101001");

            ht.Add(‘P‘, "101101101001");

            ht.Add(‘Q‘, "101010110011");

            ht.Add(‘R‘, "110101011001");

            ht.Add(‘S‘, "101101011001");

            ht.Add(‘T‘, "101011011001");

            ht.Add(‘U‘, "110010101011");

            ht.Add(‘V‘, "100110101011");

            ht.Add(‘W‘, "110011010101");

            ht.Add(‘X‘, "100101101011");

            ht.Add(‘Y‘, "110010110101");

            ht.Add(‘Z‘, "100110110101");

            ht.Add(‘0‘, "101001101101");

            ht.Add(‘1‘, "110100101011");

            ht.Add(‘2‘, "101100101011");

            ht.Add(‘3‘, "110110010101");

            ht.Add(‘4‘, "101001101011");

            ht.Add(‘5‘, "110100110101");

            ht.Add(‘6‘, "101100110101");

            ht.Add(‘7‘, "101001011011");

            ht.Add(‘8‘, "110100101101");

            ht.Add(‘9‘, "101100101101");

            ht.Add(‘+‘, "100101001001");

            ht.Add(‘-‘, "100101011011");

            ht.Add(‘*‘, "100101101101");

            ht.Add(‘/‘, "100100101001");

            ht.Add(‘%‘, "101001001001");

            ht.Add(‘$‘, "100100100101");

            ht.Add(‘.‘, "110010101101");

            ht.Add(‘ ‘, "100110101101");

            #endregion

            #region 39码 9位

            //ht.Add(‘0‘, "000110100");

            //ht.Add(‘1‘, "100100001");

            //ht.Add(‘2‘, "001100001");

            //ht.Add(‘3‘, "101100000");

            //ht.Add(‘4‘, "000110001");

            //ht.Add(‘5‘, "100110000");

            //ht.Add(‘6‘, "001110000");

            //ht.Add(‘7‘, "000100101");

            //ht.Add(‘8‘, "100100100");

            //ht.Add(‘9‘, "001100100");

            //ht.Add(‘A‘, "100001001");

            //ht.Add(‘B‘, "001001001");

            //ht.Add(‘C‘, "101001000");

            //ht.Add(‘D‘, "000011001");

            //ht.Add(‘E‘, "100011000");

            //ht.Add(‘F‘, "001011000");

            //ht.Add(‘G‘, "000001101");

            //ht.Add(‘H‘, "100001100");

            //ht.Add(‘I‘, "001001100");

            //ht.Add(‘J‘, "000011100");

            //ht.Add(‘K‘, "100000011");

            //ht.Add(‘L‘, "001000011");

            //ht.Add(‘M‘, "101000010");

            //ht.Add(‘N‘, "000010011");

            //ht.Add(‘O‘, "100010010");

            //ht.Add(‘P‘, "001010010");

            //ht.Add(‘Q‘, "000000111");

            //ht.Add(‘R‘, "100000110");

            //ht.Add(‘S‘, "001000110");

            //ht.Add(‘T‘, "000010110");

            //ht.Add(‘U‘, "110000001");

            //ht.Add(‘V‘, "011000001");

            //ht.Add(‘W‘, "111000000");

            //ht.Add(‘X‘, "010010001");

            //ht.Add(‘Y‘, "110010000");

            //ht.Add(‘Z‘, "011010000");

            //ht.Add(‘-‘, "010000101");

            //ht.Add(‘.‘, "110000100");

            //ht.Add(‘ ‘, "011000100");

            //ht.Add(‘*‘, "010010100");

            //ht.Add(‘$‘, "010101000");

            //ht.Add(‘/‘, "010100010");

            //ht.Add(‘+‘, "010001010");

            //ht.Add(‘%‘, "000101010");

            #endregion

            s = "*"
+ s.ToUpper() + "*";

            string
result_bin = "";//二进制串

            try

            {

                foreach
(char
ch in
s)

                {

                    result_bin += ht[ch].ToString();

                    result_bin += "0";//间隔,与一个单位的线条宽度相等

                }

            }

            catch
{ return
"存在不允许的字符!"; }

            string
result_html = ""; //HTML代码

            string
color = "";       //颜色

            foreach
(char
c in
result_bin)

            {

                color = c == ‘0‘
? "#FFFFFF"
: "#000000";

                result_html += "<div style=\"width:"
+ width + "px;height:"
+ height + "px;float:left;background:"
+ color + ";\"></div>";

            }

            result_html += "<div style=\"clear:both\"></div>";

            int
len = ht[‘*‘].ToString().Length;

            foreach
(char
c in
s)

            {

                result_html += "<div style=\"width:"
+ (width * (len + 1)) + "px;float:left;color:#000000;text-align:center;\">"
+ c + "</div>";

            }

            result_html += "<div style=\"clear:both\"></div>";

            return
"<div style=\"background:#FFFFFF;padding:5px;font-size:"
+ (width * 10) + "px;font-family:‘楷体‘;\">"
+ result_html + "</div>";

        }

        public
static string getEAN13(string
s, int
width, int
height)

        {

            int
checkcode_input = -1;//输入的校验码

            if
(!Regex.IsMatch(s, @"^\d{12}$"))

            {

                if
(!Regex.IsMatch(s, @"^\d{13}$"))

                {

                    return
"存在不允许的字符!";

                }

                else

                {

                    checkcode_input = int.Parse(s[12].ToString());

                    s = s.Substring(0, 12);

                }

            }

            int
sum_even = 0;//偶数位之和

            int
sum_odd = 0; //奇数位之和

            for
(int
i = 0; i < 12; i++)

            {

                if
(i % 2 == 0)

                {

                    sum_odd += int.Parse(s[i].ToString());

                }

                else

                {

                    sum_even += int.Parse(s[i].ToString());

                }

            }

            int
checkcode = (10 - (sum_even * 3 + sum_odd) % 10) % 10;//校验码

            if
(checkcode_input > 0 && checkcode_input != checkcode)

            {

                return
"输入的校验码错误!";

            }

            s += checkcode;//变成13位

            // 000000000101左侧42个01010右侧35个校验7个101000000000

            // 6        101左侧6位 01010右侧5位校验1位101000000000

            string
result_bin = "";//二进制串

            result_bin += "000000000101";

            string
type = ean13type(s[0]);

            for
(int
i = 1; i < 7; i++)

            {

                result_bin += ean13(s[i], type[i - 1]);

            }

            result_bin += "01010";

            for
(int
i = 7; i < 13; i++)

            {

                result_bin += ean13(s[i], ‘C‘);

            }

            result_bin += "101000000000";

            string
result_html = ""; //HTML代码

            string
color = "";       //颜色

            int
height_bottom = width * 5;

            foreach
(char
c in
result_bin)

            {

                color = c == ‘0‘
? "#FFFFFF"
: "#000000";

                result_html += "<div style=\"width:"
+ width + "px;height:"
+ height + "px;float:left;background:"
+ color + ";\"></div>";

            }

            result_html += "<div style=\"clear:both\"></div>";

            result_html += "<div style=\"float:left;color:#000000;width:"
+ (width * 9) + "px;text-align:center;\">"
+ s[0] + "</div>";

            result_html += "<div style=\"float:left;width:"
+ width + "px;height:"
+ height_bottom + "px;background:#000000;\"></div>";

            result_html += "<div style=\"float:left;width:"
+ width + "px;height:"
+ height_bottom + "px;background:#FFFFFF;\"></div>";

            result_html += "<div style=\"float:left;width:"
+ width + "px;height:"
+ height_bottom + "px;background:#000000;\"></div>";

            for
(int
i = 1; i < 7; i++)

            {

                result_html += "<div style=\"float:left;width:"
+ (width * 7) + "px;color:#000000;text-align:center;\">"
+ s[i] + "</div>";

            }

            result_html += "<div style=\"float:left;width:"
+ width + "px;height:"
+ height_bottom + "px;background:#FFFFFF;\"></div>";

            result_html += "<div style=\"float:left;width:"
+ width + "px;height:"
+ height_bottom + "px;background:#000000;\"></div>";

            result_html += "<div style=\"float:left;width:"
+ width + "px;height:"
+ height_bottom + "px;background:#FFFFFF;\"></div>";

            result_html += "<div style=\"float:left;width:"
+ width + "px;height:"
+ height_bottom + "px;background:#000000;\"></div>";

            result_html += "<div style=\"float:left;width:"
+ width + "px;height:"
+ height_bottom + "px;background:#FFFFFF;\"></div>";

            for
(int
i = 7; i < 13; i++)

            {

                result_html += "<div style=\"float:left;width:"
+ (width * 7) + "px;color:#000000;text-align:center;\">"
+ s[i] + "</div>";

            }

            result_html += "<div style=\"float:left;width:"
+ width + "px;height:"
+ height_bottom + "px;background:#000000;\"></div>";

            result_html += "<div style=\"float:left;width:"
+ width + "px;height:"
+ height_bottom + "px;background:#FFFFFF;\"></div>";

            result_html += "<div style=\"float:left;width:"
+ width + "px;height:"
+ height_bottom + "px;background:#000000;\"></div>";

            result_html += "<div style=\"float:left;color:#000000;width:"
+ (width * 9) + "px;\"></div>";

            result_html += "<div style=\"clear:both\"></div>";

            return
"<div style=\"background:#FFFFFF;padding:0px;font-size:"
+ (width * 10) + "px;font-family:‘楷体‘;\">"
+ result_html + "</div>";

        }

        private
static string ean13(char
c, char
type)

        {

            switch
(type)

            {

                case
‘A‘:

                    {

                        switch
(c)

                        {

                            case
‘0‘: return
"0001101";

                            case
‘1‘: return
"0011001";

                            case
‘2‘: return
"0010011";

                            case
‘3‘: return
"0111101";//011101

                            case
‘4‘: return
"0100011";

                            case
‘5‘: return
"0110001";

                            case
‘6‘: return
"0101111";

                            case
‘7‘: return
"0111011";

                            case
‘8‘: return
"0110111";

                            case
‘9‘: return
"0001011";

                            default: return
"Error!";

                        }

                    }

                case
‘B‘:

                    {

                        switch
(c)

                        {

                            case
‘0‘: return
"0100111";

                            case
‘1‘: return
"0110011";

                            case
‘2‘: return
"0011011";

                            case
‘3‘: return
"0100001";

                            case
‘4‘: return
"0011101";

                            case
‘5‘: return
"0111001";

                            case
‘6‘: return
"0000101";//000101

                            case
‘7‘: return
"0010001";

                            case
‘8‘: return
"0001001";

                            case
‘9‘: return
"0010111";

                            default: return
"Error!";

                        }

                    }

                case
‘C‘:

                    {

                        switch
(c)

                        {

                            case
‘0‘: return
"1110010";

                            case
‘1‘: return
"1100110";

                            case
‘2‘: return
"1101100";

                            case
‘3‘: return
"1000010";

                            case
‘4‘: return
"1011100";

                            case
‘5‘: return
"1001110";

                            case
‘6‘: return
"1010000";

                            case
‘7‘: return
"1000100";

                            case
‘8‘: return
"1001000";

                            case
‘9‘: return
"1110100";

                            default: return
"Error!";

                        }

                    }

                default: return
"Error!";

            }

        }

        private
static string ean13type(char
c)

        {

            switch
(c)

            {

                case
‘0‘: return
"AAAAAA";

                case
‘1‘: return
"AABABB";

                case
‘2‘: return
"AABBAB";

                case
‘3‘: return
"AABBBA";

                case
‘4‘: return
"ABAABB";

                case
‘5‘: return
"ABBAAB";

                case
‘6‘: return
"ABBBAA";//中国

                case
‘7‘: return
"ABABAB";

                case
‘8‘: return
"ABABBA";

                case
‘9‘: return
"ABBABA";

                default: return
"Error!";

            }

        }

    }

}

  

调用时传入 13位的数字字符串("1405042033235"),宽度(2),高度(50)

BarCodeToHTML.getEAN13(string s, int width, int height);

BarCodeToHTML.getEAN13("1405042033235", 2, 50);

CodeToHTML 打印条码生成,布布扣,bubuko.com

时间: 2024-12-09 16:47:07

CodeToHTML 打印条码生成的相关文章

C#打印条码BarTender SDK打印之路和离开之路(web平凡之路)

从来没想过自己会写一篇博客,鉴于这次从未知的探索到一个个难点的攻破再到顺利打印,很想记录这些点滴,让后人少走弯路. 下面走进正题. 需求:取数据库里的相应的字段数据,并生成条形码,可以批量.单条打印.大概意思就是你要搞出来一个高大上的标签,可以贴在我的货堆上.打印机我已经给你买好了,自己看着办. 第一次接触打印机器,我有点不知所错.虽然在懵逼中恍惚了一会,但是打印机一到,三七二十一,红红火火恍恍惚惚,对于拼机器,我总是乐此不疲,半个小时搞定.直接给大家看下安装好了的成果.好,上图. 这就是支撑我

winform 打印条码

一个winform打印功能的示例 操作步骤:1.新建winform项目及创建窗体2.拖取 打印 相关控件 PageSetupDialog . PrintDialog . PrintDocument .PrintPreviewDialog3.设置上述控件的Document属性为相应的PrintDocument4.设置按钮等控件 及 添加相应按钮事件 public partial class Form3 : Form { public Form3() { InitializeComponent();

使用MyBatis Generator自动生成实体、mapper和dao层

通过MyBatis Generator可以自动生成实体.mapper和dao层,记录一下怎么用的. 主要步骤: 关于mybatis从数据库反向生成实体.DAO.mapper: 参考文章:http://www.cnblogs.com/wangkeai/p/6934683.html第一种方式:main方法运行(推荐) 1.在pom.xml中加入插件依赖: 2.写mbgConfiguration.xml文件,jdbc.properties文件 3.写/SSM/src/main/java/main/Ge

iOS app打包 -- 生成ipa测试包 步骤详解

最近有小伙伴问我如何打成ipa包分发给测试人员 , 虽然现在网上的教程很多,但是也很杂, 没有一个比较完整的讲解. 利用工作之余, 就说一下如何生成ipa包?共分为两种方法. 第一种方法: 1) 至于配置发布证书和AdHoc描述文件, 就不再累述, 下载下来双击安装即可.(ps: 生成AdHoc描述文件的时候要注意勾选所有的设备, 只有被描述文件包含的设备才能进行相应的测试. 如果是企业账号的话则不需要添加设备的udid). 2) 接下来开始配置xCode里的工作(包括发布证书和描述文件), 注

微信生成二维码 只需一个网址即刻 还有jquery生成二维码

<div class="orderDetails-info"> <img src="http://qr.topscan.com/api.php?text=http://123.net/index.php?s=/Home/Index/yanzheng/mai/{$dange.id}" style="width: 5rem; margin-bottom: 1rem;" > </div> http://qr.tops

C# 动态生成WebService,无需添加引用

C#项目调用WebService是很常见的现象,但一旦修改链接地址就需要重新更新引用很是麻烦,这里跟大家分享一个通过地址,无需添加引用动态生成Webservice的小方法 方法类: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.ServiceModel; 6 using System.ServiceModel.Channels

seam2.2根据已有数据库(postgresql)生成项目

首先呢,这是我向同哥请教的一个文题,然后同哥把整个过程给我解答了一遍,谢谢同哥的乃森及引针啦---- seam2.2根据已有数据库(postgresql)生成项目 一,建数据库 进入pgAdmin新建一个数据库然后用eclipse的插件ErMaster导出sql或者是自己手写sql新建数据表 ,这里新建了一个名为test的数据库 里面有两个表,member和department,为多对一的关系,注意不要忘了设置主键 二,进入seam目录运行 ./seam setup ./seam create-

AD 脚本kixtart运用之六(outlook邮件批量生成签名)

基于上一编文章http://windyma.blog.51cto.com/661702/1967071里的设置 我们在Function.kix添加如下内容(备注:此outlook签名function来自网上,经过我比较大的修改): ---------------- Function GenerateOutlookSig($SignatureFileName) $EmailAccountName = @WUSERID ;----获取outlook配置profile名字(如果有多个profile名字

thinkphp U方法生成链接没有host

今天将自己代码传到线上服务器,页面上用到很多thinkphp U() 方法生成的链接.本地测试没啥问题,到线上发现链接生成的不对,每个都没有了host 每个链接多个index,然后查看tp的U方法: $url    =   __APP__.'/'.($module?$module.MODULE_PATHINFO_DEPR:'').implode($depr,array_reverse($var)); 是因为__APP__这里的原因,然后找到__APP__赋值的地方: define('__APP_