WPF打印票据

本文介绍了在WPF中进行票据打印的关键点,包括使用PrintDialog的PrintVisual方法进行打印,通过布局和DPI调整确保内容位置准确,以及如何实现竖打、退纸和监控打印任务状态。同时,文中提到的鸡贼办法是通过打印空白页实现针式打印机的退纸功能。
摘要由CSDN通过智能技术生成

最近工作的内容是有关于WPF的,整体开发没有什么难度,主要是在打印上因为没有任何经验,犯了一些难,不过还好,解决起来也不是很费劲。

WPF打印票据或者是打印普通纸张区别不大,只是说打印票据要把需要打的内容摆放好位置,搞定缩放比例,就可以放入票据直接打印了。
那么关键点就是3个:
1、使用WPF提供的什么类、什么方法来执行打印
2、如何摆放位置
3、如何搞定缩放比例

1、使用WPF提供的什么类、什么方法来执行打印

这个问题很容易解决,搜索下WPF打印或WPF Print,就能找到示例代码。
那么我用的是PrintDialog的PrintVisual方法。PrintDialog从名字中可以看出是个对话框,让用户手动选择打印机。如果不想弹出对话框和选择打印机,则可以读取默认打印机或者在配置文件里配置打印机名称,然后找到它。这就需要用到另外的两个类:PrintQueue和LocalPrintServer。
使用PrintDialog打印:

var printDialog = new PrintDialog();
printDialog.PrintQueue = GetPrinter();
printDialog.PrintVisual(visual, visual.Name);

获取打印机任务队列:

public static PrintQueue GetPrinter(string printerName = null)
{
	try
	{
		PrintQueue selectedPrinter = null;
		if (!string.IsNullOrEmpty(printerName))
		{
			var printers = new LocalPrintServer().GetPrintQueues();
			selectedPrinter = printers.FirstOrDefault(p => p.Name == printerName);
		}
		else
		{
			selectedPrinter = LocalPr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值