主要用到函数说明:MxDrawXCustomFunction::Mx_Print
直接打印,不出现打印对话框,详细说明如下:
| 参数 | 说明 |
|---|---|
| double ptLBx | 打印的范围左下角x |
| double ptLBy | 打印的范围左下角y |
| double ptRTx | 打印的范围右上角x |
| double ptRTy | 打印的范围右上角y |
| LPCTSTR pszPrintName | 打印机名,如果传为空,取系统默认打印机 |
| LPCTSTR pszPaperName | 打印的图纸名,如果传为空,取系统默认打印机设置 |
| LONG iPrintDirection | 打印的方向,2 为横向,1为纵向,默认取1 |
| LONG iLeftMargin | 打印的页边的左边距离,如果为-1,取打印机默认的页边距 |
| LONG iRightMargin | 打印的页边的右边距离,如果为-1,取打印机默认的页边距 |
| LONG iTopMargin | 打印的页边的上边距离,如果为-1,取打印机默认的页边距 |
| LONG iBottomMargin | 打印的页边的下边距离,如果为-1,取打印机默认的页边距 |
| LPCTSTR pszLayoutName | 打印的布局,为NULL就是模型Model中的内容 |
| LPCTSTR pszPrintConfig | 打印配制,暂没有使用 |
| LPCTSTR pszDocName | 打印的文档名称,在用pdf虚拟打印机时,指定打印的pdf文件的缺省文件名 |
| LONG lIsPrintLineWdith | 是否打印线宽,默认值为1,表示打印,传0表示不打印 |
| iFlag | pRectPageMargin参数的含义,iFlag = 0表示页边距,iFlag = 1表示打印区域矩形框位置 |
js代码实现如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | function myprint() { var axMxDrawX = document.getElementById("MxDrawXCtrl"); var viewBound = axMxDrawX.Call("Mx_GetViewCoord",""); var printParam = axMxDrawX.Call("Mx_NewResbuf",""); // 打印范围取当前视区显示内容 printParam.AddDouble(viewBound.AtDouble(1)); printParam.AddDouble(viewBound.AtDouble(2)); printParam.AddDouble(viewBound.AtDouble(3)); printParam.AddDouble(viewBound.AtDouble(4)); var jpgWidth = viewBound.AtDouble(3) - viewBound.AtDouble(1); var jpgHeight = viewBound.AtDouble(4) - viewBound.AtDouble(2); // 把jpg的宽度,高度,求文档坐标变成象素宽高. //var jpgWidth = axMxDrawX.CallDoubleParam1("Mx_DocLongToViewCoord",jpgWidth); // jpgWidth = jpgWidth.AtLong(1); //var jpgHeight = axMxDrawX.CallDoubleParam1("Mx_DocLongToViewCoord",jpgHeight); //jpgHeight = jpgHeight.AtLong(1); var printWidth = 50; var printHeight = 50; if(jpgWidth > 1) printHeight = printWidth * jpgHeight / jpgWidth; // 打印机名,取空就取系统默认的。 printParam.AddString(""); // 图纸名,取空就取系统默认的 printParam.AddString(""); // 打印的方向,2 为横向,1为纵向,默认取1 printParam.AddLong(1); // 打印区域的左上角X坐标,图纸单为mm printParam.AddLong(50); // 打印区域的右下角X坐标,图纸单为mm printParam.AddLong(50 + printWidth ); // 打印区域的左上角Y坐标,图纸单为mm printParam.AddLong(50); // 打印区域的右下角Y坐标,图纸单为mm printParam.AddLong(50 + printHeight); // 打印的布局,为NULL就是模型Model中的内容 printParam.AddString(""); // 打印配制,暂没有使用 printParam.AddString(""); // 打印的文档名称,在用pdf虚拟打印机时,指定打印的pdf文件的缺省文件名 printParam.AddString(""); // 前面打印参数说明:iFlag = 0表示页边距,iFlag = 1表示打印区域矩形框位置 printParam.AddLong(1); // 开始打印 var ret = axMxDrawX.CallEx("Mx_Print",printParam); if(ret.AtString(0) == "Ok") alert("打印成功"); } |
相关问题

梦想 CAD 是专业的CAD插件( 控件 ),可轻松在网页、手机及BS/CS程序中浏览编辑DWG文件,不需安装AutoCAD即可运行。经十余年累积已非常稳定可靠,有关键的空间搜索算法,并使用汇编优化,可同时处理50万级实体,有非常高的图形显示和处理效率。
联系我们
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删