Штрих-код Zen с символами. Winforms

Привет кто-нибудь знает, как включить цифры / строки тоже внизу, когда он рисует штрих-код?

Вот мой код

     private void btnGenerate_Click_1(object sender, EventArgs e)
    {
        Zen.Barcode.Code128BarcodeDraw barcode = Zen.Barcode.BarcodeDrawFactory.Code128WithChecksum;
        pictureBox1.Image = barcode.Draw(textBox1.Text, 50);
    }

PS Должен ли я сохранить его в столбце базы данных и вызвать его там тоже? Спасибо

ОБНОВЛЕНИЕ базы от сэра В.В. Ваташи ответ. вот новый вывод.

Но это перекрывает штрих-код, я хочу, чтобы он выглядел примерно так:

Спасибо

1 ответ

Решение

Вы можете напечатать текст на изображении с помощью System.Drawing, в соответствии с вашим кодом:

Zen.Barcode.Code128BarcodeDraw barcode = Zen.Barcode.BarcodeDrawFactory.Code128WithChecksum;
var image = barcode.Draw(textBox1.Text, 50);

using (var graphics = Graphics.FromImage(image))
using (var font = new Font("Consolas", 12)) // Any font you want
using (var brush = new SolidBrush(Color.White))
using (var format = new StringFormat() { LineAlignment = StringAlignment.Far }) // To align text above the specified point
{
    // Print a string at the left bottom corner of image
    graphics.DrawString(textBox1.Text, font, brush, 0, image.Height, format);
}

pictureBox1.Image = image;

Немного неясно, как база данных связана с первой частью вашего вопроса.

Обновить. О, я не заметил, что сгенерированный график штрих-кода является целым изображением. В этом случае вы можете нарисовать штрих-код и текст на большом изображении:

Zen.Barcode.Code128BarcodeDraw barcode = Zen.Barcode.BarcodeDrawFactory.Code128WithChecksum;
var barcodeImage = barcode.Draw(textBox1.Text, 50);

var resultImage = new Bitmap(barcodeImage.Width, barcodeImage.Height + 20); // 20 is bottom padding, adjust to your text

using (var graphics = Graphics.FromImage(resultImage))
using (var font = new Font("Consolas", 12))
using (var brush = new SolidBrush(Color.Black))
using (var format = new StringFormat()
{
    Alignment = StringAlignment.Center, // Also, horizontally centered text, as in your example of the expected output
    LineAlignment = StringAlignment.Far
})
{
    graphics.Clear(Color.White);
    graphics.DrawImage(barcodeImage, 0, 0);
    graphics.DrawString(textBox1.Text, font, brush, resultImage.Width / 2, resultImage.Height, format);
}

pictureBox1.Image = resultImage;
Другие вопросы по тегам