C# 打印机纸张设置

o330820350 2014-06-19 11:44:00
//获得对应图片需要的纸张大小

printdoc.BeginPrint += new PrintEventHandler(printDocument_BeginPrint);
printdoc.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
printdoc.EndPrint += new PrintEventHandler(printDocument_EndPrint);

printdoc = new PrintDocument();
printdoc.PrinterSettings.PrinterName = "KONICA MINOLTA C353 Series PCL";
PaperSize PaperMini = GetBitmapPaperSize(1587, 1122);//这里返回的是a3的纸张设置
printdoc.DefaultPageSettings.PrinterSettings.DefaultPageSettings.PaperSize= PaperMini;
//开始打印
printdoc.Print();

第一个问题:
在这里设置开始打印的时候,打印机并没有使用成我设置的的A3,最终还是使用的A4类型的纸张
第二个问题:
假如我在printDocument_BeginPrint函数中设置纸张大小多页打印不同纸张的时候会不会成功
PaperSize PaperMini = GetBitmapPaperSize(bitMap.Height, bitMap.Width);
//设置打印机纸张


//printdoc.DefaultPageSettings.PaperSize.PaperName = PaperMini.PaperName;

e.PageSettings.PrinterSettings.DefaultPageSettings.PaperSize = PaperMini;
g.DrawImage(bitMap, rect);


...全文
612 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
o330820350 2014-06-20
  • 打赏
  • 举报
回复
谢谢各位的帮助了 已经搞定了,两个的纸张全部都设置一遍就都OK了 已经可以实现多种页面大小的XPS也能打印的功能 printdoc.PrinterSettings.DefaultPageSettings.PaperSize = PaperMini; printdoc.DefaultPageSettings.PaperSize = PaperMini;
jointan 2014-06-19
  • 打赏
  • 举报
回复
不要瞎听了
                bool result = false;

                foreach(System.Drawing.Printing .PaperSize pSize in printdoc.PrinterSettings.PaperSizes )
                {
                    if (pSize.Kind == System.Drawing.Printing.PaperKind.A3)
                    {
                        printdoc.DefaultPageSettings.PaperSize = pSize;
                        result = true;
                        break;
                    }


                }

                if(!result)
                    MessageBox.Show("当前打印机不支持该纸张类型")
                else
                    printdoc.Print();
脸肿了 2014-06-19
  • 打赏
  • 举报
回复
引用 2 楼 Z65443344 的回复:
不是还有PageSetupDialog,PrintDialog这些控件可以用来设置纸张么 你先调用一下,修改纸张为A3,然后判断到底哪个属性在起作用. 反正肯定不是纸张大小. 打印机需要你告诉它从哪个纸盒里取纸,而不会通过你页面大小自动判断纸张来源.
+1
於黾 2014-06-19
  • 打赏
  • 举报
回复
不是还有PageSetupDialog,PrintDialog这些控件可以用来设置纸张么 你先调用一下,修改纸张为A3,然后判断到底哪个属性在起作用. 反正肯定不是纸张大小. 打印机需要你告诉它从哪个纸盒里取纸,而不会通过你页面大小自动判断纸张来源.

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧