打印条码源码
⑴ 我想具体知道一下条形码的生成方法,那里有源代码汉字也可以生成的那种。万分火急,谢谢,拜托。
打印条形码标签,有许多方法.
1 最原始是用指令方式:
这时一定要用条形码打印机(不是办公打印机), 你要向厂家拿到该打印机的指令技术资料,
然后编辑指令(一串字符串), 最后把指令发给打印机端口
(比如, 打印机接并口LPT1, 则发给LPT1, 把打印机端口当作文件名称一样打开读写,
然后把指令COPY 指令文件 LPT1),
这种方式兼容性差,就是说找个指令只能这种型号打印机能用;
2 用打印机画布
根据条形码编码算法,把数字转换成图形,然后在画布画好,
然后把打印画布即可,这个估计你理解不了,因为转换成图形的算法很复杂.
不过,我们有封装了一个动态库dll,可以很方便调用,不过是要钱的;
3 最简单的是用第三方控件
比如 最好用的应该是FastReport(报表设计工具),直接拖拉条形码控件到报表设计面板,
填入你要打印的条形码数值,它就自动生成了,然后调用fastReport的打印方法即可;
网上资料也很多.
4 还有一种方法是条形码字体
网上可以找到code128或code39的条形码字体,填入数值就可以生成条形码,
然后像打印其他普通的内容一样去编程即可,当然这种条形码字体一般条形码
图形的精度不是很高,识别起来有时会比较不敏捷.
5 要能包含中文的条形码只能用二维码,比如QR码 。
_______________________________________
广州溯源:物联网,企业移动应用,条形码软件
⑵ 一维条码生成器c#源代码,要VS2010版本的!
邮件就不发了,你拉一个form,加一个textbox和一个按钮。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Drawing;
using System.Collections;
namespace BarcodeTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string fix_value = "";
byte[] fix_image01 = new byte[1024];
fix_value = this.textBox1.Text;
Code39 _code39 = new Code39();
_code39.Height = 120;
_code39.Magnify = 1;
_code39.ViewFont = new Font("宋体", 20);
System.Drawing.Image[] _image = new System.Drawing.Image[1];
System.IO.MemoryStream _stream = new System.IO.MemoryStream();
FileStream[] fs = new FileStream[1];
string jpg = "";
jpg = "d:\\" + fix_value.ToString() + ".jpeg";
_image[0] = _code39.GetCodeImage(fix_value, Code39.Code39Model.Code39Normal, true);
_image[0].Save(_stream, System.Drawing.Imaging.ImageFormat.Jpeg);
_image[0].Save(jpg);
}
}
public class Code39
{
private Hashtable m_Code39 = new Hashtable();
private byte m_Magnify = 0;
public byte Magnify { get { return m_Magnify; } set { m_Magnify = value; } }
private int m_Height = 40;
public int Height { get { return m_Height; } set { m_Height = value; } }
private Font m_ViewFont = null;
public Font ViewFont { get { return m_ViewFont; } set { m_ViewFont = value; } }
public Code39()
{
m_Code39.Add("A", "1101010010110");
m_Code39.Add("B", "1011010010110");
m_Code39.Add("C", "1101101001010");
m_Code39.Add("D", "1010110010110");
m_Code39.Add("E", "1101011001010");
m_Code39.Add("F", "1011011001010");
m_Code39.Add("G", "1010100110110");
m_Code39.Add("H", "1101010011010");
m_Code39.Add("I", "1011010011010");
m_Code39.Add("J", "1010110011010");
m_Code39.Add("K", "1101010100110");
m_Code39.Add("L", "1011010100110");
m_Code39.Add("M", "1101101010010");
m_Code39.Add("N", "1010110100110");
m_Code39.Add("O", "1101011010010");
m_Code39.Add("P", "1011011010010");
m_Code39.Add("Q", "1010101100110");
m_Code39.Add("R", "1101010110010");
m_Code39.Add("S", "1011010110010");
m_Code39.Add("T", "1010110110010");
m_Code39.Add("U", "1100101010110");
m_Code39.Add("V", "1001101010110");
m_Code39.Add("W", "1100110101010");
m_Code39.Add("X", "1001011010110");
m_Code39.Add("Y", "1100101101010");
m_Code39.Add("Z", "1001101101010");
m_Code39.Add("0", "1010011011010");
m_Code39.Add("1", "1101001010110");
m_Code39.Add("2", "1011001010110");
m_Code39.Add("3", "1101100101010");
m_Code39.Add("4", "1010011010110");
m_Code39.Add("5", "1101001101010");
m_Code39.Add("6", "1011001101010");
m_Code39.Add("7", "1010010110110");
m_Code39.Add("8", "1101001011010");
m_Code39.Add("9", "1011001011010");
m_Code39.Add("+", "1001010010010");
m_Code39.Add("-", "1001010110110");
m_Code39.Add("*", "1001011011010");
m_Code39.Add("/", "1001001010010");
m_Code39.Add("%", "1010010010010");
m_Code39.Add("$", "1001001001010");
m_Code39.Add(".", "1100101011010");
m_Code39.Add(" ", "1001101011010");
}
public enum Code39Model
{
Code39Normal,
Code39FullAscII
}
public Bitmap GetCodeImage(string p_Text, Code39Model p_Model, bool p_StarChar)
{
string _ValueText = "";
string _CodeText = "";
char[] _ValueChar = null;
switch (p_Model)
{
case Code39Model.Code39Normal:
_ValueText = p_Text.ToUpper();
break;
default:
_ValueChar = p_Text.ToCharArray();
for (int i = 0; i != _ValueChar.Length; i++)
{
if ((int)_ValueChar[i] >= 97 && (int)_ValueChar[i] <= 122)
{
_ValueText += "+" + _ValueChar[i].ToString().ToUpper();
}
else
{
_ValueText += _ValueChar[i].ToString();
}
}
break;
}
_ValueChar = _ValueText.ToCharArray();
if (p_StarChar == true) _CodeText += m_Code39["*"];
for (int i = 0; i != _ValueChar.Length; i++)
{
if (p_StarChar == true && _ValueChar[i] == '*') throw new Exception("带有起始符号不能出现*");
object _CharCode = m_Code39[_ValueChar[i].ToString()];
if (_CharCode == null) throw new Exception("不可用的字符" + _ValueChar[i].ToString());
_CodeText += _CharCode.ToString();
}
if (p_StarChar == true) _CodeText += m_Code39["*"];
Bitmap _CodeBmp = GetImage(_CodeText);
GetViewImage(_CodeBmp, p_Text);
return _CodeBmp;
}
private Bitmap GetImage(string p_Text)
{
char[] _Value = p_Text.ToCharArray();
Bitmap _CodeImage = new Bitmap(_Value.Length * ((int)m_Magnify + 1), (int)m_Height);
Graphics _Garphics = Graphics.FromImage(_CodeImage);
_Garphics.FillRectangle(Brushes.White, new Rectangle(0, 0, _CodeImage.Width, _CodeImage.Height));
int _LenEx = 0;
for (int i = 0; i != _Value.Length; i++)
{
int _DrawWidth = m_Magnify + 1;
if (_Value[i] == '1')
{
_Garphics.FillRectangle(Brushes.Black, new Rectangle(_LenEx, 0, _DrawWidth, m_Height));
}
else
{
_Garphics.FillRectangle(Brushes.White, new Rectangle(_LenEx, 0, _DrawWidth, m_Height));
}
_LenEx += _DrawWidth;
}
_Garphics.Dispose();
return _CodeImage;
}
private void GetViewImage(Bitmap p_CodeImage, string p_Text)
{
if (m_ViewFont == null) return;
Graphics _Graphics = Graphics.FromImage(p_CodeImage);
SizeF _FontSize = _Graphics.MeasureString(p_Text, m_ViewFont);
if (_FontSize.Width > p_CodeImage.Width || _FontSize.Height > p_CodeImage.Height - 20)
{
_Graphics.Dispose();
return;
}
int _StarHeight = p_CodeImage.Height - (int)_FontSize.Height;
_Graphics.FillRectangle(Brushes.White, new Rectangle(0, _StarHeight, p_CodeImage.Width, (int)_FontSize.Height));
int _StarWidth = (p_CodeImage.Width - (int)_FontSize.Width) / 2;
_Graphics.DrawString(p_Text, m_ViewFont, Brushes.Black, _StarWidth, _StarHeight);
_Graphics.Dispose();
}
}
}
⑶ 怎么使用zebra打印机,将AS400 spoolfile中的ZPL源代码,打印成条形码
你说的这种不知道是不是我们用的哪一种第三方的接口调用,我使用的中琅的标签软件,是数据库导入,打印的时候支持第三方接口调用来打印,是cmd命令打印的:
你可以看下
⑷ C#如何调用打印机驱动,使用打印机中的字体打印条码
直接向打印机串口发打印机命令就可以了!你可以看看使用说明的
⑸ 如何实现Zebra打印机可以打印条码的功能(求程序源代码)
貌似拿来就可以打条码吧...
⑹ 急需,条形码的打印和扫描 源代码,我用vb6.0软件编程。酬谢
条形码的扫描我做过。
可以发给你看看。
⑺ 怎样用普通打印机打印出可被条码扫描仪识别的条码,要源码的,拒绝广告
不知道你要的是什么样的码字。code128还是code39.还有一套软件可以用普通的打印机打印。我的邮箱是[email protected]
⑻ 怎样用C语言做一个条形码
一、条形码的读取
用过键盘口式的扫条码工具的朋友就知道,它就如同在键盘上按下数字键一样,基本不需任何编程和处理。但如果你使用的是其它接口的话,可能你就要为该设备编写通讯代码了。以下有一段简单的25针串口的条码读取器通讯代码。
Option Explicit
Dim sData As String
Private Sub Form_Load()
With MSComm1
.CommPort = 3 '设为COM3,试运行的系统而定,你可提供一个Combox让用户选择。
.PortOpen = True '打开通讯端口
End With
End Sub
Private Sub MSComm1_OnComm()
Dim EndPos As Integer
Select Case MSComm1.CommEvent
Case comEvReceive '当有数据传送过来时
sData = sData & Trim(MSComm1.Input)
'检索回车,通常读卡机每组数据结尾都返回一个回车作为结束符
EndPos = InStr(1, sData, Chr(13))
If EndPos = 0 Then '如果未结束就继续努力
Else '读完一组。
lblBarCode.Caption = sData '显示一组条形码
With lstBarCode
.AddItem Mid(sData, 1, EndPos - 1) '添加一组条形码到列表
End With
sData = "" '清空
End If
End Select
End Sub
Private Sub cmdEnd_Click()
MSComm1.PortOpen = False '关闭端口
End
End Sub
二、条形码的生成
看完以上关于条码读取的代码是否觉得很容易呢?对,在VB上编程本来就不难。以下关于条形码生成的代码也是很容易理解,只需使用一个OFFICE的附带的BarCode控件就可以轻松打印出11种不同标准的条形码,足以满足我们的要求。想起我书架上的一本书中的一篇用Turbo C编写条形码打印程序文章,长篇大论,那时不知看了n天,打了n小时字结果也不尽人意,现在真是幸福多了:)。废话说完,得回归正题。且看条形码生成的代码及有关说明。
源代码主要由两个窗体(frmMain主窗体和frmOption条码设置窗体)和两个模块组成(modGetScreen.bas、SysDLG32.bas)。考虑到篇幅,这里只列出部分较为关键的代码。
新建一个标准工程,添加一个名为(Microsoft Access BarCode Control9)的条形码部件,并添加一个条码控件到窗口,并将窗口改名为frmMain,如图所示。由于控件比较多,这里不便细说,详细内容请看源代码。
模块modGetScreen.bas代码如下:
Option Explicit
'声明BitBlt、GetDesktopWindow、GetWindowDC、ReleaseDC这几个API函数略
Public RegUser As Boolean
Sub GetObjImage1(Obj As Object, OwnerForm As PictureBox, Picture1 As PictureBox)
'hDC
Dim hWndDesk As Long
Dim hDCDesk As Long
'区域表达变量
Dim x As Long
Dim y As Long
Dim w As Long
Dim h As Long
x = Obj.Left Screen.TwipsPerPixelX
y = Obj.Top Screen.TwipsPerPixelY
w = Obj.Width Screen.TwipsPerPixelX
h = Obj.Height Screen.TwipsPerPixelY
hDCDesk = OwnerForm.hdc
'取出图像
Call BitBlt(Picture1.hdc, 0, 0, w, h, hDCDesk, x, y, vbSrcCopy)
Call ReleaseDC(hWndDesk, hDCDesk)
End Sub
主窗体frmMain.frm部分代码如下:
Private Sub cmdPrint_Click()
'生成条形码图像
Dim r As Long, i As Integer, t As String,cfile As String '临时变量
t = BarCode
For i = 0 To Val(Times) - 1
BarCode1.Value = BarCode + i
DoEvents
Picture1.Refresh
GetObjImage1 BarCode1, Conel, Picture1
If RegUser = False Then '如果未注册添加MASK标记
Picture1.PaintPicture Picture2.Picture, 300, 300
End If
If Dir(SavePath, vbDirectory) = "" Then MkDir SavePath
SavePath = SavePath & IIf(Right(SavePath, 1) <> "", "", "")
cfile = SavePath & BarCode1.Value & ".bmp"
SavePicture Picture1.Image, cfile '将条形码保存为图像文件以便打印
Next
BarCode = t
End Sub
条形码设置窗体frmOption.frm代码如下:
Option Explicit
'条形码设置模块
Private Sub cboBig_Click()
BarCode1.Style = cboBig.ListIndex '改变标准
End Sub
Private Sub cboDirection_Click()
BarCode1.Direction = cboDirection.ListIndex '改变方向
End Sub
Private Sub cboLine_Click()
BarCode1.LineWeight = cboLine.ListIndex '改变线宽
End Sub
Private Sub cboSmall_Click()
BarCode1.SubStyle = cboSmall.ListIndex '改变样式
End Sub
Private Sub Check1_Click()
BarCode1.ShowData = Check1.Value '是否显示数据
End Sub
Private Sub cmdChange_Click()
'设置长、宽大小
BarWidth = BarCode1.Height
BarHeight = BarCode1.Width
cmdRefresh_Click
End Sub
Private Sub cmdOK_Click()
'传送条形码设定到主界面
With frmMain.BarCode1
.LineWeight = BarCode1.LineWeight
.Style = BarCode1.Style
.SubStyle = BarCode1.SubStyle
.Direction = BarCode1.Direction
.Width = BarCode1.Width
.Height = BarCode1.Height
.ShowData = BarCode1.ShowData
Me.Hide
End With
With frmMain
.Picture1.Width = .BarCode1.Width
.Picture1.Height = .BarCode1.Height
.Conel.Width = .BarCode1.Width
.Conel.Height = .BarCode1.Height
End With
End Sub
Private Sub cmdRefresh_Click()
BarCode1.Width = BarWidth
BarCode1.Height = BarHeight
End Sub
Private Sub Form_Load()
LoadBarInfo
BarWidth = BarCode1.Width
BarHeight = BarCode1.Height
End Sub
Sub LoadBarInfo() '初始化选项
LoadBigClass cboBig
LoadSmallClass cboSmall
LoadLineSize cboLine
LoadDirection cboDirection
End Sub
Sub LoadBigClass(cbo As ComboBox) '条码标准
With cbo
.AddItem "UPC-A"
.AddItem "UPC-E"
.AddItem "EAN-13"
.AddItem "EAN-8"
.AddItem "Case Code"
.AddItem "Codabar (NW-T)"
.AddItem "Code-39"
.AddItem "Code-128"
.AddItem "U.S. Postnet"
.AddItem "U.S. Postal FIM"
.AddItem "JP Post"
.ListIndex = 2
End With
End Sub
Sub LoadSmallClass(cbo As ComboBox) '条码样式
With cbo
.AddItem "Standard"
.AddItem "2-Digit Supplement"
.AddItem "5-Digit Supplement"
.AddItem "POS Case Code"
.ListIndex = 0
End With
End Sub
许多人在编写数据库应用程序时,都想要加上条形码功能加强工作效率,尤其是销售管理,图书馆管理这类流量大的应用软件,但由于条形码技术难以掌握、标谁又多以及过去的技术种种原因,使得许多人望而却步。本文介绍的一套简单实用的条形码解决方法,希望能帮助各位完善软件系统的功能。文章源代码可以发信到[email protected]索取。
⑼ 哪位朋友有二维条码生成程序源码
你学习的话
用一个OFFICE的附带的BarCode控件即可,输出是图像格式
不过专业的条码打印还是用VB的Printer控件Line函数以画图方式输出最好
我曾开发过多种标准的条形码控件,不过是商业软件不好开放
这里有个39码的例子,你不妨看看
如果还没解决你的问题,可以加我网络HI账号。
⑽ android 蓝牙打印机怎么打印条码
Android设备通过蓝牙连接蓝牙打印机,使用源码中提供的接口,指令可快速方便简单打印。字体大小,放大,加粗,一维码,二维码,图片,各种打印样式,适合餐饮,超市,彩票,物流等行业(这是一个eclipse工程,导入即可用)
(1) 行业手持机,微型蓝牙打印机,微型条码打印机
(2) 58mm/80mm热敏打印模块(支持切刀,缺纸,过热,黑标,标签检测),58mm/80mmEPSON针式打印模块
(3) 串口磁条卡解码模块
(4) ID、IC卡等RFID模块、读卡器(支持串口,USB无驱)