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#调用系统默认打印机打印文字和图片
本方法适用于有打印驱动的打印机打印.直接用电脑默认打印机进行打印文字和图片. 首先安装打印机驱动,然后在设备和打印机中将要用的打印机设为默认打印机,然后调用该方法即可 Pulic Void Print ...
- uniapp微信小程序连接蓝牙打印机 打印文字、图片
首先感谢几位的文章分享 https://blog.csdn.net/guairena/article/details/127941515 https://blog.csdn.net/qq_379700 ...
- 【Android】Android实现自定义带文字和图片的Button
在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法. 一.用系统自带的Button实现 最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最 ...
- php打印文字到图片,【PHP】打开一个图片然后加上水印(图片上生成文字)
1.自动生成图片,在图片上生成文字 Header("Content-type: image/gif"); //设置Header,如果输出图片不成功,请先暂时去掉这代码查看错误 $i ...
- Android实现自定义带文字和图片的Button
项目中的需求往往十分怪异,例如在按钮文字的左边加一个图标,这样按钮内部既有文字又有图片,乍看之下Button和ImageView都没法直接使用,若用LinearLayout对ImageView和But ...
- PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法,php/thinkphp实现微信分享自定义文字和图片...
PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法, php/thinkphp实现微信分享自定义文字和图片. 一.先看微信JS-SDK文 ...
- 图像处理---《在图片上打印文字 FreeType库》
图像处理---<在图片上打印文字 FreeType库> 目的:想在处理之后的图像上打印输出结果. 方法: (1)只在图像上打印 数字.字母的话: 1.Mat ...
- C++ 在图片上打印文字并保存图片
int score_record(IplImage* image, string scoreNum, float score ) {CvFont font; //传值给cvPutText()的CvFo ...
- Android绘图机制(二)——自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解
Android绘图机制(二)--自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解 我们要想画好一些炫酷的View,首先我们得知道怎么去画一些基础的图案,比如矩形,圆 ...
最新文章
- 2021-2028年中国阻燃装饰行业市场需求与投资规划分析报告
- 调整代码生成工具Database2Sharp的Winform界面生成,使其易于列表工具栏的使用。...
- springboot控制接口返回的字段_SpringBoot实战:SpringBoot之Rest Full接口自定义返回数据类型(ResponseBodyAdvice)...
- php 获取图片字节,php内置函数获取图片类型-exif_imagetype
- 用android ndk编译ffmpeg,AndroidNDK交叉编译FFMPEG
- java applet socket_Java swing applet中使用的套接字
- python中dtype什么意思_浅谈python 中的 type(), dtype(), astype()的区别
- 当ListView有Header时,onItemClick里的position不正确
- apache httpd配置后启动失败或域名绑定无效等问题解决方法
- 源码解读Linux的limits.conf文件
- Android Studio报错:Plugin Kotlin was not installed: Cannot download
- dnf全部使用_dnf命令 (常用总结)
- 获取CPU、硬盘、主板序列号及MAC地址工具类
- 使用csc命令手动编译cs文件
- 简洁实用jQuery进度条插件
- JAVA实现List集合去重
- 员工人事档案包括哪些内容?
- jpg格式如何转eps路径_jpg/png格式图片转eps格式的方法总结
- python火车抢票_春运火车票太难抢?不如试试这个python开源工具吧
- 52.	文件上传篇——Apache漏洞原理