一、打印设置
在顶部快速访问工具栏单击打印按钮或者直接输入PLOT命令或者点击打印控制的打印设置按钮打开打印对话框。c#代码实现如下:
//打印设置private void Print1(){ axMxDrawX1.SendStringToExecute("Plot");} |
打印对话框如下图所示,用户可以根据需求设置图纸尺寸和绘图设备,打印区域及打印参数等。

js代码实现如下:
//打印设置function Print1() { mxOcx.SendStringToExecute("Plot");} |
打印对话框如下图所示,用户可以根据需求设置图纸尺寸和绘图设备,打印区域及打印参数等。

二、选择范围打印
用户可以在打印设置里面的打印区域的自由选择或者点击打印控制的选择范围打印实现功能。c#实现代码如下:
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("打印失败"); }} |
用户可以在控件视区中选取所需打印内容进行打印,效果如下图所示:

js代码实现如下:
//选择范围打印function Print() { //新建一个COM组件对象 参数为COM组件类名 var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint"); getPt.message = "点取打印范围第一点"; if (getPt.go() != 1) { return; } var frstPt = getPt.value(); if (frstPt == null) return; //新创建IMxDrawUtility对象 var utl = mxOcx.NewUtility(); //与用户交互得一个矩形框 参数一矩形框一个对角点;参数二命令行提示 var secondPt = utl.GetCorner(frstPt, "点取打印范围第二点"); if (secondPt == null) return; //新建一个COM组件对象 参数为COM组件类名 var print = mxOcx.NewComObject("IMxDrawPrint"); //开始打印 参数一为打印的范围左下角X1;参数二为打印的范围左下角Y1 //参数三为打印的范围右上角X2 ;参数四为打印的范围右上角Y2 if (print.Print(frstPt.x, frstPt.y, secondPt.x, secondPt.y)) { alert("打印成功"); } else { alert("打印失败"); }} |
用户可以在控件视区中选取所需打印内容进行打印,效果如下图所示:

三、给定中心点缩放打印
用户可以在控件视区选取打印的中心点进行打印。c#代码实现如下:
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("打印失败"); }} |
js代码实现如下:
//按给定的中心点,缩放比例打印function Print2() { //新建一个COM组件对象 参数为COM组件类名 var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint"); getPt.message = "点取打印中心点"; if (getPt.go() != 1) { return; } var frstPt = getPt.value(); if (frstPt == null) return; //新建一个COM组件对象 参数为COM组件类名 var print = mxOcx.NewComObject("IMxDrawPrint"); //开始打印 参数一为打印的范围左下角X1;参数二为打印的范围左下角Y1 //参数三为打印的范围右上角X2 ;参数四为打印的范围右上角Y2 if (print.Print2(frstPt.x, frstPt.y,2)) { alert("打印成功"); } else { alert("打印失败"); }} |
四、添加页眉或页脚数据
用户选取所需打印范围进行打印,并为其添加页眉和页脚数据。c#代码实现如下:
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("打印失败"); }} |
如下图所示:

js代码实现如下:
//添加一个页眉或页脚数据function AddPageComment() { //新建一个COM组件对象 参数为COM组件类名 var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint"); getPt.message = "点取打印范围第一点"; if (getPt.go() != 1) { return; } var frstPt = getPt.value(); if (frstPt == null) return; //新创建IMxDrawUtility对象 var utl = mxOcx.NewUtility(); //与用户交互得一个矩形框 参数一矩形框一个对角点;参数二命令行提示 var secondPt = utl.GetCorner(frstPt, "点取打印范围第二点"); if (secondPt == null) return; //新建一个COM组件对象 参数为COM组件类名 var print = mxOcx.NewComObject("IMxDrawPrint"); //添加一个页眉或页脚数据 // 参数一为打印的文字内容;参数二为字体;参数三为字体大小,单位是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(frstPt.x, frstPt.y, secondPt.x, secondPt.y)) { alert("打印成功"); } else { alert("打印失败"); }} |
如下图所示:
