C#实现自定义打印文字和图片的示例代码

 更新时间:2022年04月19日 09:00:34   作者:ViperL1  
本文主要介绍了C#实现自定义打印文字和图片的示例代码,C#中打印其实就是自己绘图+调用系统打印函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

C#中打印其实就是自己绘图+调用系统打印函数,于是便有了以下操作

1.调用打印机设置

如果你想在打印前设置打印机属性(或者切换打印机),请务必添加这段代码,否则电脑会直接按照预设的设置进行打印(打印机都没法选)

//打印机设置
PrintDialog printDialog = new PrintDialog();
printDialog.Document = ptDoc;
printDialog.ShowDialog();

ptDoc就是打印的文件内容,会在后面解释

2.关联文档

等于我们需要新建一个空白的画布,然后把我们需要的文字,图片,线条依次摆上去

PrintDocument ptDoc = new PrintDocument();
ptDoc.DocumentName = "测试文件";//在队列中显示的名字
ptDoc.PrintPage += PtDoc_PrintPage;//关联内容生成方法

3.绘制内容

本次测试的内容分为:横排文字,竖排文字,图片,具体内容和位置可以通过修改参数进行调整

        private void PtDoc_PrintPage(object sender, PrintPageEventArgs e)
        {
            e.Graphics.Clear(Color.White);
            // 开始绘制文档
            // 默认为横排文字
            e.Graphics.DrawString("标题:打印测试",
                                    new Font(new FontFamily("宋体"), 40, FontStyle.Bold),
                                    System.Drawing.Brushes.Red,
                                    170, 10);
            // 横线
            e.Graphics.DrawLine(Pens.Black, 20, 110, 800, 110);
            // 竖排文字
            e.Graphics.DrawString("内容",
                                    new Font(new FontFamily("宋体"), 14, FontStyle.Bold),
                                    System.Drawing.Brushes.Black,
                                    20, 120,
                                    new StringFormat(StringFormatFlags.DirectionVertical));
 
            e.Graphics.DrawString( this.txtName.Text,
                        new Font(new FontFamily("宋体"), 14, FontStyle.Bold),
                        System.Drawing.Brushes.Black,
                        20, 200);
 
            //e.Graphics.DrawImage(Image.FromFile(Path), 20, 250, 800, 100);    //会造成失真
 
            Image imgsample = Image.FromFile(Path);
            Point pt = Zoom(imgsample.Width, imgsample.Height, 200);
            e.Graphics.DrawImage(imgsample, 20, 250, pt.X, pt.Y);//直接打印可能出现太大打印不下
        }

        同时直接打印图片的话可能造成图片太大,可以写一个缩放方法来限制图片的最大尺寸

        private Point Zoom(int x, int y,int maxWidth)
        {
            Point pt = new Point(x, y);
            while (pt.X > maxWidth)
            {
                pt.X /= 2;
                pt.Y /= 2;
            }
            return pt;
        }

最后结果如下

 到此这篇关于C#实现自定义打印文字和图片的示例代码的文章就介绍到这了,更多相关C# 自定义打印文字和图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#实现Winform中打开网页页面的方法

    C#实现Winform中打开网页页面的方法

    这篇文章主要介绍了C#实现Winform中打开网页页面的方法,涉及WinForm中WebBrowser的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C# 调用Delphi dll 实例代码

    C# 调用Delphi dll 实例代码

    这篇文章介绍了C# 调用Delphi dll 实例代码,有需要的朋友可以参考一下
    2013-09-09
  • c#调整图片分辨率的实现示例

    c#调整图片分辨率的实现示例

    本文主要介绍了c#调整图片分辨率的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • Unity3D实现NavMesh导航网格寻路

    Unity3D实现NavMesh导航网格寻路

    这篇文章主要为大家详细介绍了Unity3D实现NavMesh导航网格寻路,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • C#实现动态加载dll的方法

    C#实现动态加载dll的方法

    这篇文章主要介绍了C#实现动态加载dll的方法,涉及针对动态链接库的灵活操作技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • c# 日历控件的实现

    c# 日历控件的实现

    这篇文章主要介绍了c# 实现日历的示例代码,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12
  • c# 文件操作(移动,复制,重命名)

    c# 文件操作(移动,复制,重命名)

    这篇文章主要介绍了c# 如何对文件操作(移动,复制,重命名),帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12
  • c#中String类型的存储原理详解

    c#中String类型的存储原理详解

    本文主要介绍了c#中String类型的存储原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 详解Unity使用ParticleSystem粒子系统模拟药水在血管中流动(粒子碰撞)

    详解Unity使用ParticleSystem粒子系统模拟药水在血管中流动(粒子碰撞)

    这篇文章主要介绍了Unity使用ParticleSystem粒子系统模拟药水在血管中流动(粒子碰撞),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • 基于WPF实现路径图标控件

    基于WPF实现路径图标控件

    这篇文章主要介绍了如何利用WPF实现路径图标控件,文中的示例代码讲解详细,对我们学习或工作有一定帮助,需要的小伙伴可以参考一下
    2023-07-07

最新评论