www.mxdraw.com
内容索引主面
前一个向上下一个
MxDrawXCustomFunction::Mx_Print 方法

直接打印,不出现打印对话框

IDL
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("打印成功");
            }
Copyright (c) 2010. All rights reserved.
你认为该帮助怎么样? 发送反馈信息!