using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Printing;
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;
using ThoughtWorks.QRCode.Codec.Util;
namespace TwoDimensionCodePrint
{
public partial class Print : Form
{
private int left = 0, top = 0, width = 150, height = 150;
private string fileName = "d:\\二维码电子票\\红河谷大门票\\20141025111316红河谷大门票共30张.jpg";
public Print()
{
InitializeComponent();
}
//打印
private void btnPrint_Click(object sender, EventArgs e)
{
if (pictureBox1.Image == null)
{
MessageBox.Show("请选择二维码图片");
return;
}
//打印预览
PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
PrintDocument printDocument = new PrintDocument();
//设置边距
try
{
left = int.Parse(txtLeft.Text);
top = int.Parse(txtTop.Text);
width = int.Parse(txtWidth.Text);
height = int.Parse(txtHeight.Text);
}
catch
{
MessageBox.Show("请输入正确的数字");
}
Margins margin = new Margins(left, left + width, top, top + height);
printDocument.DefaultPageSettings.Margins = margin;
//打印事件设置
printDocument.PrintPage += new PrintPageEventHandler(this.PrintPageEvent);
// 打印预览
//printPreviewDialog.Document = printDocument;
//printPreviewDialog.ShowDialog();
try
{
printDocument.Print();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
printDocument.PrintController.OnEndPrint(printDocument, new PrintEventArgs());
}
}
//打印事件处理
private void PrintPageEvent(object sender, PrintPageEventArgs e)
{
//读取图片
// 1 根据路径获取
// Bitmap image = new Bitmap(fileName);
// 2 从PictureBox获取
// Image image = pictureBox1.Image;
// 3 直接根据生成的二维码打印
Image image = ProduceQRcode("司吉峰");
//在指定区域打印二维码
Rectangle destRect = new Rectangle(left, top, width, height);
e.Graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, System.Drawing.GraphicsUnit.Pixel);
}
// 将结果填充到图片
private void GetResultIntoImage(ref Image temp, string name, string date)
{
//读取图片
Graphics g = Graphics.FromImage(temp);
Font f = new Font("宋体", 12);
Brush b = new SolidBrush(System.Drawing.Color.Black);
//填充数据到图片
g.DrawImage(temp, 0, 0, temp.Width, temp.Height);
g.DrawString(name, f, b, 168, 105);
g.DrawString(date, f, b, 176, 269);
g.Dispose();
}
//生成二维码
public Image ProduceQRcode(string TicketCodeContent)
{
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
qrCodeEncoder.QRCodeScale = 7;
qrCodeEncoder.QRCodeVersion = 0;
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
qrCodeEncoder.QRCodeBackgroundColor = System.Drawing.Color.White;
qrCodeEncoder.QRCodeForegroundColor = System.Drawing.Color.Black;
return qrCodeEncoder.Encode(TicketCodeContent);
}
}
}
运行界面:
完整代码下载:点击打开链接
分享到:
相关推荐
c# 二维码打印
C#二维码生成及批量打印C#二维码生成及批量打印C#二维码生成及批量打印C#二维码生成及批量打印C#二维码生成及批量打印C#二维码生成及批量打印
利用三种方式实现生成二维码,并且打印的功能
可以自选颜色 根据不同颜色生成自己想要的二维码 可存为本地图片 简易的打印功能
* c# 打印二维码 *
1)VS2019 C#开发生成二维码源码 2)根据内容生成条码图片 3)可以显示图片底部显示文字信息 4)二维码支持导出PDF,方便打印 5)不使用第三方插件才能生成二维码 全开源放心下载
C#实现二维码生成 以及打印机功能 有一个第三方支持文件避免了繁琐的代码
资源名:TSC标签打印机打印二维码标签C#程序源码 资源类型:程序源代码 源码说明: 使用C#编写驱动TSC标签打印机打印二维码标签程序的源码 包含完整代码 非常适合借鉴学习 适合人群:新手及有一定经验的开发人员
按产品编号、规格、等级等信息生成一个二维码、把二维码图片放在一个panel内、panel内还有其描述产品的字段、实现对panel的打印预览和打印功能(按指定的打印格式打印、标签打印机的格式)
C#调用BarTender打印(二维码)[归纳].pdf
使用sqlserver数据库,VS2013,生成的二维码支持中文,内有说明文档...................................................................
用c#写的打印二维码和条形码的例子下载后直接可以运行,
Winform中实现Excel导入、表格展示、多选获取值、生成二维码、打印流程示例代码
例子读取access 中表的数据,检测有新数据插入access 时候,自动获取新的行数据,生成二维码打印。通过FastReport的dll来调用打印。
c#winform写的打印, 含Rdlc报表,报表里面有一维码和二维码生成。供菜鸟学习。欢迎交流。
pb通过c#实现二维码打印
1、C# 斑马(Zebra)Zpl条码、二维码打印测试代码源码; 2、实例采用打印图片方式打印二维码(包含中文文字)。 2、包含web端采用WebSocket调用本地服务zpl打印(含Web端与服务端源码); 3、此源码已经测试,请使用...
devexpress中XtraReport报表二维码打印中文,有需要的可以查看
4.纯zpl指令进行中文和二维码打印 ---------------------------------------------- 亮点一:可打印中文 亮点二:代码容易看懂 亮点三:可根据zpl指令预览标签样式(该样式就是打印后的样式) 亮点四:.............. ...