You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确打印生成的标签?求助调整Godex G300打印机标签尺寸

调整Godex G300条码标签打印尺寸的解决方法

一、先在打印机驱动端配置正确的标签尺寸

  • 打开控制面板,找到设备和打印机,右键Godex G300选择打印首选项
  • 进入纸张/质量或标签设置选项卡,创建自定义纸张尺寸(比如你的标签是40mm×30mm,就输入对应的宽高,注意单位是毫米还是英寸)
  • 将这个自定义纸张设为打印机的默认纸张,确保驱动端的尺寸和实际标签完全匹配

二、修改代码中的打印文档纸张设置

原代码未指定打印纸张尺寸,默认使用A4纸导致缩放错误,需在Print_Click方法中添加自定义纸张配置:

private void Print_Click(object sender, EventArgs e)
{
    PrintDialog pd = new PrintDialog();
    PrintDocument pDoc = new PrintDocument();
    pDoc.PrintPage += PrintPicture;

    // 配置自定义纸张尺寸(示例:40mm宽,30mm高,根据实际标签修改)
    PaperSize customPaper = new PaperSize("Custom", MillimetersToHundredthsOfInch(40), MillimetersToHundredthsOfInch(30));
    customPaper.RawKind = (int)PaperKind.Custom;
    pDoc.DefaultPageSettings.PaperSize = customPaper;

    pd.Document = pDoc;
    if (pd.ShowDialog() == DialogResult.OK)
    {
        pDoc.Print();
    }
}

// 辅助方法:毫米转百分之一英寸(打印API标准单位)
private int MillimetersToHundredthsOfInch(int mm)
{
    return (int)(mm * 3.937);
}

三、调整条码生成的尺寸

原代码仅指定条码高度为50,宽度自动计算可能与标签尺寸不匹配,可根据标签尺寸生成适配的条码:

private void GenerateBarcodeButton_Click(object sender, EventArgs e)
{
    if (!String.IsNullOrEmpty(textBox1.Text))
    {
        Zen.Barcode.Code128BarcodeDraw barcodeDraw = Zen.Barcode.BarcodeDrawFactory.Code128WithChecksum;
        // 假设标签宽40mm,高30mm,转换为像素(以96DPI为例)
        int labelWidthPx = (int)(40 * 96 / 25.4);
        int labelHeightPx = (int)(30 * 96 / 25.4);
        // 设置pictureBox尺寸与标签一致,生成条码时预留边距
        pictureBox1.Size = new Size(labelWidthPx, labelHeightPx);
        pictureBox1.Image = barcodeDraw.Draw(textBox1.Text, labelHeightPx - 10);
    }
    else
        MessageBox.Show("请输入要生成的条码编号。");
}

四、优化打印时的图像绘制逻辑

原代码直接按pictureBox尺寸绘制,未适配打印区域,需添加缩放与居中逻辑:

public void PrintPicture(object sender, PrintPageEventArgs e)
{
    if (pictureBox1.Image == null) return;

    // 获取打印区域尺寸
    Rectangle printArea = e.MarginBounds;
    // 计算适配缩放比例
    float scaleX = (float)printArea.Width / pictureBox1.Image.Width;
    float scaleY = (float)printArea.Height / pictureBox1.Image.Height;
    float scale = Math.Min(scaleX, scaleY);

    // 计算居中绘制位置
    int x = printArea.Left + (int)((printArea.Width - pictureBox1.Image.Width * scale) / 2);
    int y = printArea.Top + (int)((printArea.Height - pictureBox1.Image.Height * scale) / 2);

    // 绘制缩放后的条码
    e.Graphics.DrawImage(pictureBox1.Image, x, y, pictureBox1.Image.Width * scale, pictureBox1.Image.Height * scale);
}

注意事项

  • 确保打印机装载的标签尺寸与驱动、代码设置完全一致,细微误差都会导致打印偏移或尺寸错误
  • 若问题仍存在,可先用Godex官方标签编辑软件(如GoLabel)测试打印,确认打印机硬件与驱动设置正常后再调试代码

内容的提问来源于stack exchange,提问作者User982374

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:35:17