C# 打印之横行进纸
来源:互联网 发布:淘宝拍卖手机可信吗 编辑:程序博客网 时间:2024/04/27 15:32
今天遇到一个需求.程序控制打印.但进纸需要是横行进纸.
就是说呢文档是竖向的.正常竖向放纸就能出结果.但之前程序设计.横行的输出是当成竖向打印,就是把纸横行进纸.文档是宽>高.好了现在正常竖向文档,宽<高.横行进纸就变成打印区域不正确了.
解决方案很简单.就是文档转成横向打印
printDocument1.DefaultPageSettings.Landscape = true;
然后把图像也转90度e.Graphics.RotateTransform(-90.0F);e.Graphics.TranslateTransform(0 , e.PageBounds.Height , MatrixOrder.Append);第一句是左转90度
第二句重设坐标.左转设Y,右转设X
好了.如果行普通的情况下就可以用了.
但有时候.需引用一下e.PageBounds 或 e.MarginBounds 进行布局控制的时候.就有问题了.因为图像转了.这两个值都没变. 更悲剧的是这两个值正常不能改,万恶的OO,
最后只能偷渡了
Rectangle mbn = new Rectangle(e.MarginBounds.Top, e.MarginBounds .Left , e.MarginBounds.Height, e.MarginBounds.Width); FieldInfo fi = e.GetType().GetField("marginBounds",BindingFlags.Instance|BindingFlags.NonPublic); fi.SetValue(e, mbn);用反射把值给改了,注意的是转换的(x,y)值,e.PageBounds 就不用了,是不用关注(x,y)
- C# 打印之横行进纸
- VFP不安装打印驱动直接调用打印而且不自动进纸
- C#之打印空心三角形
- C#之打印与预览
- 针式打印机进纸,退纸
- Pdf之C#直接打印pdf文件
- C#学习笔记之PrintDocument打印
- 盗版横行
- C# 打印
- C#打印
- C#打印
- C#打印
- C#打印
- C# 打印
- C#打印
- c#打印
- C# - 打印
- 应用可扩展性实践之路(一) --纵向拦截和横行拦截
- java 获取mac地址
- Oracle/PL/SQL乱码问题
- java获取客户端IP
- Oracle/临时表
- 红薯 选择 MySQL 用的服务器硬件配置
- C# 打印之横行进纸
- shell脚本基础
- 近期工作与学习技术总结
- Oracle/删除用户
- java二进制与图片之间的转换
- Oracle/基本操作
- Eclipse快捷键-方便查找,呵呵,记性不好
- ASP.NET服务端不装Office 操作Excel NPOI 3
- Android 在低版本sdk中没有getSupportedPreviewSizes和getSupportedPictureSizes函数怎么办?