C# 使用PrintDocument类打印标签的方法

 更新时间:2022年04月14日 14:52:02   作者:没事儿写个bug  
本文介绍打印机初步配置,以及实现方法,标签主要展示资产基本信息以及二维码,对C# 使用PrintDocument类打印标签的详细过程感兴趣的朋友一起看看吧

最近做了一个项目,使用不干胶标签贴在RFID抗金属标签上,那么就会出现标签打印的问题,该如何打印呢?后来经过网上冲浪发现,其实打印标签和打印A4纸的方法一样,只不过就是布局、设置纸张大小的问题。

本文介绍打印机初步配置,以及实现方法。标签主要展示资产基本信息以及二维码。

首先设置打印机纸张大小,纸张高宽度以实际标签为准,设置好后可打印测试页测试一下,以ZDesigner GX430t打印机为例。

创建PrintDocument实例,以及配置打印机名称:

/// <summary>
/// 打印
/// </summary>
private void Myprinter() 
{ 
    PrintDocument pd = new PrintDocument();      
    pd.PrintPage += new PrintPageEventHandler(printDocument_PrintA4Page);
     
    pd.DefaultPageSettings.PrinterSettings.PrinterName = "ZDesigner GX430t";       //打印机名称
    //pd.DefaultPageSettings.Landscape = true;  //设置横向打印,不设置默认是纵向的
    pd.PrintController = new System.Drawing.Printing.StandardPrintController();   
    pd.Print();  
}

设置页面布局,根据实际需求进行排版

private void printDocument_PrintA4Page(object sender, PrintPageEventArgs e)
{
    Font titleFont = new Font("黑体", 11, System.Drawing.FontStyle.Bold);//标题字体           
    Font fntTxt = new Font("宋体", 10, System.Drawing.FontStyle.Regular);//正文文字         
    Font fntTxt1 = new Font("宋体", 8, System.Drawing.FontStyle.Regular);//正文文字           
    System.Drawing.Brush brush = new SolidBrush(System.Drawing.Color.Black);//画刷           
    System.Drawing.Pen pen = new System.Drawing.Pen(System.Drawing.Color.Black);           //线条颜色         
    try
    { 
        e.Graphics.DrawString("标题name", titleFont, brush, new System.Drawing.Point(20, 10));
        Point[] points111 = { new Point(20, 28), new Point(230,28) };
        e.Graphics.DrawLines(pen, points111); 
        e.Graphics.DrawString("资产编号:", fntTxt, brush, new System.Drawing.Point(20, 31));
        e.Graphics.DrawString("123456789123465", fntTxt, brush, new System.Drawing.Point(80, 31));
        e.Graphics.DrawString("资产序号:", fntTxt, brush, new System.Drawing.Point(20, 46));
        e.Graphics.DrawString("123456789131321", fntTxt, brush, new System.Drawing.Point(80, 46));
        e.Graphics.DrawString("底部name", fntTxt1, brush, new System.Drawing.Point(100, 62));
        Bitmap bitmap = CreateQRCode("此处为二维码数据");
        e.Graphics.DrawImage(bitmap, new System.Drawing.Point(240, 10));  
    }
    catch (Exception ee)
    {
        MessageBox.Show(ee.Message);
    }
}

二维码生成方法,我这里使用zxing

/// <summary>
/// 二维码方法
/// </summary>
/// <param name="asset"></param>
/// <returns></returns>
public static Bitmap CreateQRCode(string asset)
{
    EncodingOptions options = new QrCodeEncodingOptions
    {
        DisableECI = true,
        CharacterSet = "UTF-8", //编码
        Width = 80,             //宽度
        Height = 80             //高度
    };
    BarcodeWriter writer = new BarcodeWriter();
    writer.Format = BarcodeFormat.QR_CODE;
    writer.Options = options;
    return writer.Write(asset);
}

效果图:

最后附上源码,里面有zxing.dll

链接: https://pan.baidu.com/s/1mWdjSPt282tKVz-B1VJoTA 
提取码: 517j 

2019.09.04 补充:

增加一维码打印

/// <summary>
/// 创建条码方法
/// </summary>
/// <param name="asset"></param>
/// <returns></returns>
public static Bitmap CreateCode(string asset)
{
    // 1.设置条形码规格
    EncodingOptions options = new EncodingOptions();
    options.Height = 40; // 必须制定高度、宽度
    options.Width = 120; 
    
    // 2.生成条形码图片并保存
    BarcodeWriter writer = new BarcodeWriter();
    writer.Options = options; 
    writer.Format = BarcodeFormat.CODE_128;     //二维码编码
    return writer.Write(asset);     // 生成图片
}

到此这篇关于C# 使用PrintDocument类打印标签的文章就介绍到这了,更多相关C# 打印标签内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用快捷键在Unity中快速锁定和解锁Inspector右上角的锁功能

    使用快捷键在Unity中快速锁定和解锁Inspector右上角的锁功能

    这篇文章主要为大家介绍了使用快捷键在Unity中快速锁定和解锁Inspector右上角的锁功能详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Unity动画混合树实例详解

    Unity动画混合树实例详解

    这篇文章主要为大家详细介绍了Unity动画混合树实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 在C#中实现接口事件的具体示例

    在C#中实现接口事件的具体示例

    在C#中,接口(interface)是一种定义类必须实现的方法和属性的抽象类型,除了方法和属性,接口还可以包含事件,实现接口事件可以帮助我们设计更加灵活和解耦的系统,本文将详细探讨如何在C#中实现接口事件,并通过具体示例说明其应用,需要的朋友可以参考下
    2024-08-08
  • Unity3D开发教程:愤怒的小鸟

    Unity3D开发教程:愤怒的小鸟

    这篇文章详细的讲解了如何从0开发出一个Unity3D的小游戏愤怒的小鸟,本文包含大量的图片与文字描述,也含有大量的源代码,可以让你快速入手,希望本篇文章对你有所帮助
    2021-06-06
  • C#自定读取配置文件类实例

    C#自定读取配置文件类实例

    这篇文章主要介绍了C#自定读取配置文件类,实例分析了C#读取配置文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • C# FileStream文件读写详解

    C# FileStream文件读写详解

    本文主要介绍C#使用 FileStream 读取数据,写入数据等操作,希望能帮到大家。
    2016-04-04
  • VS2019下安装和破解 DevExpress 19.2 插件的详细教程

    VS2019下安装和破解 DevExpress 19.2 插件的详细教程

    这篇文章主要介绍了VS2019 安装并破解 DevExpress 19.2 插件的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C# 添加PDF页眉/页脚的示例代码

    C# 添加PDF页眉/页脚的示例代码

    这篇文章主要介绍了C# 添加PDF页眉/页脚的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • C#之IP地址和整数互转的小例子

    C#之IP地址和整数互转的小例子

    C#之IP地址和整数互转的小例子,需要的朋友可以参考一下
    2013-03-03
  • C#实现对Json字符串处理实例

    C#实现对Json字符串处理实例

    这篇文章主要介绍了C#实现对Json字符串处理,通过一个json实例分析了C#进行JSON操作的方法,需要的朋友可以参考下
    2014-09-09

最新评论