当绘制完图纸后就可以开始打印。开始画图前就考虑到打印的需要,要用多大纸张,打印比例应该设置成多少,打印后的字高、线宽、颜色应该设置成多少,在绘制图形的时候,这些为打印而做的准备工作必不可少,点击此处下载演示实例。
视频如下:
在顶部快速访问工具栏单击打印按钮或者直接输入PLOT命令或者点击打印控制的打印设置按钮打开打印对话框。
//打印设置 private void Print1() { axMxDrawX1.SendStringToExecute("Plot"); }
打印对话框如下图所示,用户可以根据需求设置图纸尺寸和绘图设备,打印区域及打印参数等。
用户可以在打印设置里面的打印区域的自由选择或者点击打印控制的选择范围打印实现功能。
private void PrintRange() { MxDrawUtility mxUtility = new MxDrawUtility(); //点取第一点 MxDrawPoint point = (MxDrawPoint)(mxUtility.GetPoint(null, "点取第一点...")); if (point == null) return; //点取第二点 MxDrawPoint point1 = (MxDrawPoint)(mxUtility.GetPoint(null, "点取第二点...")); if (point1 == null) return; MxDrawPrint print = new MxDrawPrint(); //开始打印 参数一为打印的范围左下角X1;参数二为打印的范围左下角Y1 //参数三为打印的范围右上角X2 ;参数四为打印的范围右上角Y2 if (print.Print(point.x, point.y, point1.x, point1.y)) { MessageBox.Show("打印成功"); } else { MessageBox.Show("打印失败"); } }
用户可以在CAD控件视区中选取所需打印内容进行打印,效果如下图所示:
用户可以在CAD控件视区选取打印的中心点进行打印。
private void Print2() { MxDrawUtility mxUtility = new MxDrawUtility(); //点取打印中心点 MxDrawPoint point = (MxDrawPoint)(mxUtility.GetPoint(null, "点取第一点...")); if (point == null) return; MxDrawPrint print = new MxDrawPrint(); //开始打印 参数一为打印的范围左下角X1;参数二为打印的范围左下角Y1 //参数三为打印的范围右上角X2 ;参数四为打印的范围右上角Y2 if (print.Print2(point.x, point.y, 2)) { MessageBox.Show("打印成功"); } else { MessageBox.Show("打印失败"); } }
用户选取所需打印范围进行打印,并为其添加页眉和页脚数据。
private void AddPageComment() { MxDrawUtility mxUtility = new MxDrawUtility(); //点取第一点 MxDrawPoint point = (MxDrawPoint)(mxUtility.GetPoint(null, "点取第一点...")); if (point == null) return; //点取第二点 MxDrawPoint point1 = (MxDrawPoint)(mxUtility.GetPoint(null, "点取第二点...")); if (point1 == null) return; MxDrawPrint print = new MxDrawPrint(); //添加一个页眉或页脚数据 // 参数一为打印的文字内容;参数二为字体;参数三为字体大小,单位是mm ;参数四为字体位置 print.AddPageComment("TTTTTT中文", "宋体", 3, 1); print.AddPageComment("TTTTTT中文", "宋体", 3, 2); print.AddPageComment("TTTTTT中文", "宋体", 3, 3); print.AddPageComment("TTTTTT中文2", "宋体", 3, 4); print.AddPageComment("TTTTTT中文2", "宋体", 3, 5); print.AddPageComment("TTTTTT中文2", "宋体", 3, 6); //开始打印 参数一为打印的范围左下角X1;参数二为打印的范围左下角Y1 //参数三为打印的范围右上角X2 ;参数四为打印的范围右上角Y2 if (print.Print(point.x, point.y, point1.x, point1.y)) { MessageBox.Show("打印成功"); } else { MessageBox.Show("打印失败"); } }
如下图所示:
用户可以将视区所有内容进行打印。
private void PrintAll() { MxDrawPrint print = new MxDrawPrint(); if (print.PrintAll()) { MessageBox.Show("打印成功"); } else { MessageBox.Show("打印失败"); } }
效果如下:
当用户需要打印两个CAD控件的图纸时,可以采用嵌套打印实现。实现嵌套打印功能,首先将两个CAD控件放入网页中,C#代码如下:
private void BatchPrintDialog() { MxDrawPrint print = new MxDrawPrint(); // 开始打印. print.BeginNestedPrint(); //iFlag = 0表示页边距,iFlag = 1表示打印区域矩形框位置 print.Flag = 1; // 打印区位置(10,10,200,100),坐标系统是,X从左到右,Y从上到下. //打印的页边距的左边距离 print.dLeftPageMargin = 10; //打印的页边距的上边距离 print.dTopPageMargin = 10; //打印的页边距的右边距离 print.dRightPageMargin = 200; //打印的页边距的下边距离 print.dBottomPageMargin = 100; // 把屏幕显示内容进行的打印,打印第一个控件。 axMxDrawX1.MakeCurrentOcx(); print.PrintScreen(); // 打印区位置(10,110,200,210),坐标系统是,X从左到右,Y从上到下. //打印的页边距的上边距离 print.dTopPageMargin = 110; //打印的页边距的下边距离 print.dBottomPageMargin = 210; // 把屏幕显示内容进行的打印,打印第二个控件。 axMxDrawX2.MakeCurrentOcx(); print.PrintScreen(); //结束嵌套打印 print.EndNestedPrint(); }
效果展示: