Почему мое изображение штрих-кода не соответствует размеру бумаги, указанному в настройках принтера штрих-кода, когда я C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему мое изображение штрих-кода не соответствует размеру бумаги, указанному в настройках принтера штрих-кода, когда я

Сообщение Anonymous »


Я использую Zen Barcode Rendering Framework для создания штрих-кодов в приложении формы Windows C#. У меня есть два текстовых поля (одно для самого штрих-кода и одно для соответствующего текста, который я хочу напечатать на этикетке со штрих-кодом). Точно так же я загружаю сгенерированное изображение штрих-кода в графический блок и пытаюсь его распечатать, но каждый раз, когда я нажимаю кнопку печати, результат неверный (иногда принтер печатает белую пустую этикетку, а иногда штрих-код печатается неполным. Интересно отметить, что для того, чтобы штрих-код появился на этикетке, даже если он выглядит неполным, мне приходится выбирать очень большие форматы бумаги). Вот мой код:

Код для события нажатия кнопки создания штрих-кода:

private void Button1_Click(отправитель объекта, EventArgs e) { строковый штрих-код = textBox1.Text; Zen.Barcode.Code128BarcodeDraw brcd = Zen.Barcode.BarcodeDrawFactory.Code128WithChecksum; вар barcodeImage = brcd.Draw (штрих-код, 50); интервал результатаImageWidth; if(barcodeImage.Width >= textBox2.Text.Length*8) { resultImageWidth = barcodeImage.Width; } еще { resultImageWidth = textBox2.Text.Length*8; } вар resultImage = новое растровое изображение (resultImageWidth, barcodeImage.Height + 60); // 20 – это отступы снизу, подстраивайтесь под свой текст используя (var Graphics = Graphics.FromImage(resultImage)) используя (var font = new Font("IranYekan", 10)) используя (var кисть = новый SolidBrush(Color.Black)) используя (var format = new StringFormat() { Alignment = StringAlignment.Center, // Кроме того, горизонтально центрированный текст, как в вашем примере ожидаемого результата LineAlignment = StringAlignment.Far }) { графика.Очистить(Цвет.Белый); Graphics.DrawImage(barcodeImage, (resultImageWidth - barcodeImage.Width)/2, 0); Graphics.DrawString(textBox1.Text, шрифт, кисть, resultImage.Width / 2, resultImage.Height-30, формат); Graphics.DrawString(textBox2.Text, шрифт, кисть, resultImage.Width / 2, resultImage.Height, формат); } PictureBox1.Image = resultImage; } Код события нажатия кнопки печати:

private void Button2_Click(отправитель объекта, EventArgs e) { PrintDialog pd = новый PrintDialog (); PrintDocument doc = новый PrintDocument(); doc.PrintPage += Doc_PrintPage; pd.Document = документ; если (pd.ShowDialog() == DialogResult.OK) { документ.Печать(); } } И моя функция Doc_PrintPage():

private void Doc_PrintPage (отправитель объекта, PrintPageEventArgs e) { Растровое изображение bm = новое растровое изображение(pictureBox1.Width, PictureBox1.Height); PictureBox1.DrawToBitmap(bm, new Rectangle(0, 0, PictureBox1.Width, PictureBox1.Height)); e.Graphics.DrawImage(bm, 0, 0); бм.Dispose(); } Моя главная цель — полностью распечатать штрих-код с соответствующим текстом внутри границ бумаги, который выбирается при появлении диалогового окна печати.

Вы можете просмотреть пользовательский интерфейс моего приложения на изображении ниже:
Изображение


Вот мои распечатанные результаты: вы видите, что они некачественные, и изображение каждый раз не помещается правильно. Я использую Brother QL-700.
Изображение

Изображение

Изображение

Изображение

Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»