在实际项目中,打印的纸张的默认一般都是纵向,但有一些是横向,但发现在一些很特殊的情况下,即使在打印之前设置了横向,但实际打印依然是纵向。目前发现这个问题有两个原因。

1 是纸张名称不对,会导致横向设置不起作用。

例如,设置为A4纸,但实际没有这种类型的纸张,或者有名称不一样,偶尔会导致即使设置了横向,但实际打印依然是纵向。也就是横向设置不起作用。

  private PaperSize GetPaperSize(PrintDocument pDoc, string paperName, string pageType, Size pageSize){bool fitPaper = false;PaperSize sizeFit = null;PaperSize sizeA4 = null;PaperSize sizeCustomMin = null;int minPiancha = 300;Size pageSizeTmp = new Size(pageSize.Width, pageSize.Height);//把毫米转为(以0.001英寸为单位)的数据,本来需要乘以10,但PaperSize的单位是百分之一英寸,又需要除以10,因此不处理Size pageSizeNew = PrinterUnitConvert.Convert(pageSizeTmp, PrinterUnit.TenthsOfAMillimeter, PrinterUnit.ThousandthsOfAnInch);bool isCustomPaperSize = pageType== PaperKind.Custom.ToString();//获取打印机支持的所有纸张类型         foreach (PaperSize size in pDoc.PrinterSettings.PaperSizes){//看该打印机是否有我们需要的纸张类型  string PaperName = size.PaperName;if (size.Kind.ToString() == pageType){if(size.PaperName.IndexOf(paperName) >= 0){fitPaper = true;sizeFit = size;return sizeFit;}if(isCustomPaperSize && size.Kind== PaperKind.Custom){int heightPiancha = Math.Abs(size.Height - pageSizeNew.Height);int widthPiancha = Math.Abs(size.Width - pageSizeNew.Width);int Piancha = heightPiancha * heightPiancha + widthPiancha * widthPiancha;if (Piancha <= minPiancha){minPiancha = Piancha;sizeCustomMin = size;                         }}}              if (size.Kind == PaperKind.A4){sizeA4 = size;}}           if (!fitPaper){if(isCustomPaperSize && sizeCustomMin != null){if(minPiancha<50){LogInfo.Error("未找到自定义纸张类型,使用找到的最接近的纸张PaperName=" + paperName + ",使用Custom" + sizeCustomMin);return sizeCustomMin;}else{LogInfo.Error("未找到自定义纸张类型,使用找到的最接近的纸张PaperName=" + paperName + ",minPiancha=" + minPiancha);}}if (sizeA4 == null){//  Size pageSize = doc.PageSize;//纸张大小,单位毫米 PaperSize sizeCustom = new PaperSize("Custom", pageSizeNew.Width, pageSizeNew.Height);LogInfo.Error("未找到纸张类型PaperName=" + paperName + ",使用Custom" + sizeCustom);return sizeCustom;}else{LogInfo.Error("未找到纸张类型PaperName=" + paperName + ",使用sizeA4" + sizeA4);return sizeA4;}}System.Diagnostics.Debug.Assert(sizeFit != null);return sizeFit;}

2 动态修改了打印机,也就是在弹出打印对话框时,动态修改了打印机,也会导致整个问题。

修改为其他的打印机:如下图

实际打印纸张的横向设置不起作用的问题相关推荐

  1. 水磨石地面分隔条设置示意图_水磨石地面设置分格条的作用是什么

    地面装修的种类有多种多样的形式,很多人会选择水磨石的地面装修.在装修水磨石的地面时,一般都会设置分格条,那这些分格条的作用是什么呢,接下来就跟着小编一起来了解一下. 一.水磨石地面设置分格条的作用 1 ...

  2. word 编辑过程中变为只读_Word字体无法更改设置不起作用的几种情况

    Word字体无法更改设置不起作用的几种情况 在编辑文档的过程中,时不时就会碰到word设置字体后,文本没有反应,设置不起作用,设置不了的情况.无论是通过字体对话框.样式对话框.直接在字体功能区点,还是 ...

  3. 手机输入法带拼音声调_word中拼音横向设置

    前言 在word编辑文字的时候,可以加注拼音,这对于陌生文字辨别读音非常有帮助,但是插入的拼音都是在文字上方的,那如果我们想要横向插入拼音的话,应该怎么操作呢? 今天小编就给大家分享,在word中拼音 ...

  4. Word文档如何实现单页横向设置

    关于在Word文档实现单页横向设置 一.在Word2007中: 先在该页选定一段文字,再依次选中"页面布局---页边距---自定义边距",选择应用于"选定文字" ...

  5. 登录时设置验证码的作用及实现

    登录时设置图片验证码的作用及实现 防止有人利用机器人自动批量注册: 对注册用户用 特定程序"暴力破解方式" 不断的登录.灌水: 提高用户账户的安全性:因为图片验证码的复杂性,机器人 ...

  6. jsp 页面打印 纵向横向设置

    jsp页面打印-JS打印设置 技术 2010-04-07 13:14:11 阅读139 评论0 字号:大中小订阅 重点: <OBJECT id=WebBrowser classid=CLSID: ...

  7. 404 NOT FOUND!---设置404的作用

    抱歉,沒有找到您需要的文章!! 404页面是网站必备的一个页面,它承载着用户体验与SEO优化的重任. 404页面通常为用户访问了网站上不存在或已删除的页面,服务器返回的404错误. 如果站长没有设置4 ...

  8. .ini文件中的PHP 5.6 error_reporting设置不起作用

    环境: wamp+php5+mysql 问题描述:在本地调试php代码的时候,升级了php版本(5.5.12), 爆出大量WARNING, DEPRECATED,NOTICE提示. 第一次修改: 修改 ...

  9. html设置背景颜色无效,设置背景颜色无效果(第二种实现方式 背景颜色设置不起作用)...

    body{ /* 第一种实现方式 background-color:#C0C0C0; /* 设置背景颜色为黑色 */ background-image:url('PHPCHINA.png');   / ...

最新文章

  1. pythonfor循环嵌套_python-嵌套和for循环中的字典和列表中的项...
  2. android 去掉蓝牙传输文件功能_iPhone还在用蓝牙传输照片?这个功能更好用还快哟,了解一下...
  3. 一个风骚的C语言操作
  4. CVPR 2019 | 亮风台发布全球最大单目标跟踪数据集LaSOT
  5. 【Elasticsearch】Elasticsearch的IndexSorting:一种查询性能优化利器
  6. c java http通讯,c语言经过http请求javaee项目
  7. while(scanf(%d,n)!=EOF) / while(cinn)终止问题
  8. poj 1035 Spell checker【字符串】
  9. 2018华东师范软件复试机试
  10. postgresql不支援 10 验证类型
  11. 计算机硬盘内存显示是红色,解决 win10 磁盘容量条显示红色问题
  12. centos 把文件打包为tar.gz命令
  13. ORA-03113 错误分析与解决
  14. 从零开始学统计 07 | 标准误差
  15. SqlServer更改字段类型--varchar转decimal
  16. gc java ibm_月光软件站 - 编程文档 - Java - IBM JVM 1.4.1 GC与内存管理
  17. JavaScript 音乐导航(缓动动画、会唱歌的导航)
  18. CAN FD、CANDTU、CAN记录仪实战之示波器捕捉波形及对照CAN FD帧定义解析CAN FD帧
  19. 对勾函数的性质及其应用
  20. 优秀Android开发简历都是这么写,你学会也可以进大厂

热门文章

  1. 路由器管理界面登录不上应该怎么办
  2. 杰理之l播放文件加密后不播放提示音或者正常歌曲问题【篇】
  3. 2021-2027全球与中国IEC入口滤波器市场现状及未来发展趋势
  4. 【离线语音专题①】安信可最新离线语音模组VC系列出厂固件使用教程——SDK开源?
  5. iPad mini Retina越狱小结
  6. 影响征信的十大“雷区”
  7. 面向“接口”编程和面向“实现”编程
  8. js实现匹配到文字设置为红色
  9. 小白渗透0-1:BlackMarket靶场渗透记录
  10. Pinger为iOS版textfree增加语音邮件功能