如何直接打印,不出现打印对话框?
-
回答:
主要用到函数说明:
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表示打印区域矩形框位置
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