列印條碼源碼
⑴ 我想具體知道一下條形碼的生成方法,那裡有源代碼漢字也可以生成的那種。萬分火急,謝謝,拜託。
列印條形碼標簽,有許多方法.
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無驅)