www.mxdraw.com
|
直接打印,不出现打印对话框
static void Mx_Print(double ptLBx, double ptLBy, double ptRTx, double ptRTy, LPCTSTR pszPrintName, LPCTSTR pszPaperName, LONG iPrintDirection, LONG iLeftMargin, LONG iRightMargin, LONG iTopMargin, LONG iBottomMargin, LPCTSTR pszLayoutName, LPCTSTR pszPrintConfig, LPCTSTR pszDocName, LONG lFlag, LONG lIsPrintLineWdith);
参数 |
说明 |
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表示打印区域矩形框位置 |
成功返回TRUE.
例如:VB代码。
'打印10,10,100,100范围的图纸到当前系统默认设置打印机 Dim printParam As MxDrawResbuf Set printParam = New MxDrawResbuf ' 打印的左下角10,10 printParam.AddDouble 10 printParam.AddDouble 10 ' 打印的右上角100,100 printParam.AddDouble 100 printParam.AddDouble 100 ' 开始打印 MxDrawX1.CallEx "Mx_Print", printParam
例如: JS代码
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("打印成功"); }