
Instalar
El paquete nuget "Zen Barcode Rendering Framework" debemos de tener instalado en nuestro formulario.


Versión 1 código de barra
Esta versión solo muestra el código de barra sin el texto o números debajo.
private void btnbarra_Click(object sender, EventArgs e) { Zen.Barcode.Code128BarcodeDraw codigodebarra = Zen.Barcode.BarcodeDrawFactory.Code128WithChecksum; imgbarra.Image = codigodebarra.Draw(txtcajabarra.Text,40); }
Versión 2 código de barra
Esta versión requiere un poco más de trabajo y muestra el código de barra con el texto o números debajo.
private void btnbarra_Click(object sender, EventArgs e) { Zen.Barcode.Code128BarcodeDraw codigodebarra = Zen.Barcode.BarcodeDrawFactory.Code128WithChecksum; imgbarra.Image = codigodebarra.Draw(txtcajabarra.Text,40); var imagentemporal = codigodebarra.Draw(txtcajabarra.Text, 40); var imagenconcodigo = new Bitmap(imagentemporal.Width, imagentemporal.Height + 20); var x = imagenconcodigo.Width / 2; var y = imagenconcodigo.Height; using (var vargrafico = Graphics.FromImage(imagenconcodigo)) using (var varformato = new StringFormat() { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Far }) { vargrafico.Clear(Color.White); vargrafico.DrawImage(imagentemporal, 2, 2); vargrafico.DrawString(txtcajabarra.Text, new Font("", 10), new SolidBrush(Color.Black), x, y, varformato); } imgbarra.Image = imagenconcodigo; }
QR
Solo muestra el código QR.
private void btnqr_Click(object sender, EventArgs e) { Zen.Barcode.CodeQrBarcodeDraw codigoqr = Zen.Barcode.BarcodeDrawFactory.CodeQr; imgqr.Image = codigoqr.Draw(txtcajaqr.Text, 40); }
Botón guardar código de barra y QR
En este caso esta guardando el PictureBox del código de barra, pero puedes cambiar imgbarra por el nombre de otro PictureBox para que guarde su imagen.
private void btnguardarbarra_Click(object sender, EventArgs e) { saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); saveFileDialog1.FileName = ""; saveFileDialog1.Filter = "JPEG|*.jpeg"; if (saveFileDialog1.ShowDialog() != DialogResult.Cancel) { string varimg = saveFileDialog1.FileName; Bitmap varbmp = new Bitmap(imgbarra.Image); varbmp.Save(varimg, ImageFormat.Jpeg); } }


Versión 1

Versión 2


- Visual Studio 2019

- El código esta como comentario, modifícalo luego de instalar el paquete.
- Las 2 versiones esta en el mismo proyecto, fíjate en el vídeo para saber como funcionan.