C# PrintDocument 打印

进来搞Window打印,发现还是很好弄的,就是在PrintDocument上画,跟在Canvas画一样,要什么样子就画什么样子,先上示例代码



private void button1_Click(object sender, RoutedEventArgs e)
        {
            var printDocument = new PrintDocument();
            //指定打印机
            printDocument.PrinterSettings.PrinterName = "Microsoft XPS Document Writer";
            //设置页边距
            printDocument.PrinterSettings.DefaultPageSettings.Margins.Left = 0;
            printDocument.PrinterSettings.DefaultPageSettings.Margins.Top = 0;
            printDocument.PrinterSettings.DefaultPageSettings.Margins.Right = 0;
            printDocument.PrinterSettings.DefaultPageSettings.Margins.Bottom = 0;
            //设置尺寸大小,如不设置默认是A4纸
            //A4纸的尺寸是210mm×297mm,
            //当你设定的分辨率是72像素/英寸时,A4纸的尺寸的图像的像素是595×842
            //当你设定的分辨率是150像素/英寸时,A4纸的尺寸的图像的像素是1240×1754
            //当你设定的分辨率是300像素/英寸时,A4纸的尺寸的图像的像素是2479×3508,
            printDocument.DefaultPageSettings.PaperSize = new PaperSize("A4", 595, 842);

            printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
            try
            {
                printDocument.Print();
            }
            catch (InvalidPrinterException)
            {

            }
            finally
            {
                printDocument.Dispose();
            }

        }
 //打印方法
        void printDocument_PrintPage(object sender, PrintPageEventArgs e)
        {
            var printContent ="打印测试";
            var printFont = new Font("宋体", 12, System.Drawing.FontStyle.Regular);
            var printColor = System.Drawing.Brushes.Black;

            var pointY = 10f;
            //画字符串
            e.Graphics.DrawString(printContent, printFont, printColor, 10f, pointY);
            
            //如何打印带粗体,倾斜,字体中带横线,下划线的字符串,设置字体的FontStyle(粗体,倾斜,字体中带横线,下划线)
            printFont = new Font("宋体", 12, System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic);
            e.Graphics.DrawString(printContent, printFont, printColor, 10f, pointY += 20f);
            printFont = new Font("宋体", 12, System.Drawing.FontStyle.Regular);

            //画图像
            //e.Graphics.DrawImage(Image, 10, 50);

            //设置坐标系缩放
            //设置打印坐标系X值为原值的0.6倍打印
            e.Graphics.ScaleTransform(0.6f, 1.0f);
            e.Graphics.DrawString(printContent, printFont, printColor, 10f, pointY += 20f);
            //恢复坐标系缩放
            e.Graphics.ScaleTransform(1 / 0.6f, 1.0f);
            e.Graphics.DrawString(printContent, printFont, printColor, 10f, pointY += 20f);

            //绘画的设置保存与恢复
            var status = e.Graphics.Save();
            e.Graphics.ScaleTransform(0.6f, 1.0f);
            e.Graphics.DrawString(printContent, printFont, printColor, 10f, pointY += 20f);
            e.Graphics.Restore(status);
            e.Graphics.DrawString(printContent, printFont, printColor, 10f, pointY += 20f);


            //如果打印还有下一页,将HasMorePages值置为true;
            e.HasMorePages = false;
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值