直接打印,不出现打印对话框
static BOOL Print(MXDRAWOCXHANDLE hOcx, McGePoint3d ptLB, McGePoint3d ptRT, LPCTSTR pszPrintName, LPCTSTR pszPaperName, int iPrintDirection, CRect* pRectPageMargin = NULL, LPCTSTR pszLayoutName = NULL, LPCTSTR pszPrintConfig = NULL, LPCTSTR pszDocName = NULL, int iFlag = 0, BOOL isPrintLineWdith = TRUE, McGePoint3d* pPrintCen = NULL, double dPrintScale = 1.0, CMxPrintPageHeader* pPageHeader = NULL, bool isCorrectPageMargin = false);
参数 |
说明 |
MXDRAWOCXHANDLE hOcx |
控件窗口句柄 |
McGePoint3d ptLB |
打印的范围左下角 |
McGePoint3d ptRT |
打印的范围右上角 |
LPCTSTR pszPrintName |
打印机名,如果传为空,取系统默认打印机 |
LPCTSTR pszPaperName |
打印的图纸名,如果传为空,取系统默认打印机设置 |
int iPrintDirection |
打印的方向,2 为横向,1为纵向 pRectPageMargin = NULL, - 打印的页边距离,如果转NULL就取打印机默认的页边距 pszLayoutName = NULL, - 打印的布局,为NULL就是模型Model中的内容 pszPrintConfig = NULL, - 打印配制,暂没有使用 pszDocName = NULL - 打印的文档名称,在用pdf虚拟打印机时,指定打印的pdf文件的缺省文件名 |
int iFlag = 0 |
pRectPageMargin参数的含义,iFlag = 0表示页边距,iFlag = 1表示打印区域矩形框位置 |
BOOL isPrintLineWdith = TRUE |
是打印线宽,默认是打印的。 |
McGePoint3d* pPrintCen = NULL |
打印中心点位置,如果该变量不为NULL,前面的ptLB,ptRT参数将不会被使用,将使用它和打印比例计算打印范围 |
double dPrintScale = 1.0 |
打印缩放比例,代表图纸上1毫米,代表多少个绘图单位. |
CMxPrintPageHeader* pPageHeader = NULL |
页眉,页脚数据 |
bool isCorrectPageMargin = false |
是否自动根据打印区域修证打印页边距 |
成功返回TRUE
直接打印,不出来现打印对话框,用户利用函数可以实现更为复杂的批量功能 参考sampleedit.sln中的CTestCommands::BatchPrint 例如:
//LPCTSTR pszPrintName = _T("5D PDF Creator"); LPCTSTR pszPrintName = NULL; //LPCTSTR pszPaperName = _T("A3"); LPCTSTR pszPaperName = NULL; for(unsigned int i = 0; i < printData.size();i++) { MxDraw::stuBatchPrintData data = printData[i]; if(!MxDraw::Print(MxDraw::GetCurOcxHandle(), data.ptLB, data.ptRT, pszPrintName, pszPaperName, data.iPrintDirection ) ) { break; } }