C#实现自定义打印文字和图片的示例代码
目录
- 1.调用打印机设置
- 2.关联文档
- 3.绘制内容
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# 自定义打印文字和图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Android gradle 自定义插件
- Android属性动画小练习(简单实现旋转平移淡入淡出缩放动画效果)
- 如何在本地开发环境中实现可信SSL证书()
- Notion无需API开发连接滴答清单,实现任务自动同步
- 基于QT5的文件读取程序的实现
- app之模拟登陆页面的实现
- [Android] Android 实现类似 今日头条 视频播放列表
- Android实现EditText禁止输入换行符但可以根据内容自动换行的解决方法
- Flutter|Flutter 点击两次退出app的实现示例
- 笔记|JavaWeb项目【实现基础博客系统】