主要用到函数说明:

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如何直接打印,不出现打印对话框?的更多相关文章

  1. CAD直接打印,不出现打印对话框(com接口VB语言)

    主要用到函数说明: MxDrawXCustomFunction::Mx_Print 直接打印,不出现打印对话框,详细说明如下: 参数 说明 double ptLBx 打印的范围左下角x double ...

  2. FastReport.Net使用:[1]屏蔽打印对话框

    1.如何设置默认打印机 在FastReport设计界面找到File->Printer Setup菜单,运行该菜单显示“打印机设置”对话框.在打印机(Printer)列表中选择默认打印机,并勾上“ ...

  3. C# 使用printDocument1.Print打印时不显示 正在打印对话框

    C#使用printDocument1.Print打印时不显示正在打印对话框有两种方法 第一种,使用PrintController       PrintController printControll ...

  4. C# 使用printDocument1.Print打印时不显示 正在打印对话框(里面还有一个讨厌的取消按钮)

    C#使用printDocument1.Print打印时不显示正在打印对话框有两种方法 第一种,使用PrintController PrintController printController = n ...

  5. PRINTDLG 打印对话框操作

    typedef struct tagPD { DWORD lStructSize; HWND hwndOwner; HGLOBAL hDevMode; HGLOBAL hDevNames; HDC h ...

  6. UWP开发入门(二十四)—— Win10风格的打印对话框

    虽然经常看到阿迪王发“看那个开发UWP的又上吊了”的图……还是忍不住重启一下这个系列.最近有用到UWP的print API,特地来写一篇给某软的这个伟大构想续一秒. 之前的打印对话框差不多长成这样: ...

  7. MFC中打印对话框CPrintDialog类

    void CCPrintDialogView::OnPrint() { DWORD dwflags=PD_ALLPAGES|PD_NOPAGENUMS|PD_USEDEVMODECOPIES|PD_S ...

  8. CAD中批量打印

    同事在网上找各种软件来实现CAD图的批量打印,总是问题多多.于是,我想到一个更方便的解决方法,即只要我将一个打印出来,然后就可以用批量处理来实现. 1.在CAD中输入plot命令(或快捷键Ctrl+P ...

  9. CAD打印图纸要怎么操作?简单方法分享给你

    大家日常生活中多多少少的都接触到过CAD文件,CAD图是借助CAD制图软件来进行绘制完成的.唯一的困惑就是CAD图纸的格式大多数均为dwg格式的,查看起来不是那么的方便?所以很多设计师们都会选择将图纸 ...

随机推荐

  1. JSON介绍及Android最全面解析方法(Gson、AS自带org.son、Jackson解析)

    前言 今天,我们来介绍一下现今主流的数据交换格式-JSON! 相同作为主流为数据交换格式-XML,假设有兴趣能够阅读我写的XML及其DOM.SAX.PULL解析方法和对照 文件夹 定义 JavaScr ...

  2. SGU 261. Discrete Roots (N次剩余)

    N次剩余 题目:http://acm.sgu.ru/problem.php? contest=0&problem=261 题意:给定n,a,p 求出x^n ≡ a(mod p)在模p意义下的全 ...

  3. 2015/12/30 字符集 ASCII 到Unicode

    ——每个软件开发人员应该无条件掌握的知识! ——Unicode伟大的创想! 相信大家一定碰到过,打开某个网页,却显示一堆像乱码,如"бЇЯАзЪСЯ"."�??????? ...

  4. TC SRM 597 DEV2

    第一次玩TC的SRM,只完成了一题,有点失落,不过还是要把每个问题都研究清楚才是我的本性,呵呵 第一题思路: 任意一个数,不断除掉2以后的剩下的数若相同则YES否则NO 第二题: 最开始判断字母个数是 ...

  5. .net 接收存储过程的返回值 。。。。

    .net 接收存储过程的返回值 .... Posted on 2009-06-10 20:26 且行且思 阅读(...) 评论(...) 编辑 收藏 例如在向数据库添加新数据时,需要检测是否有重复 本 ...

  6. CPU开销sql server 性能调优

    sql server 性能调优 CPU开销分析 一. 概述 上次在介绍性能调优中讲到了I/O的开销查看及维护,这次介绍CPU的开销及维护, 在调优方面是可以从多个维度去发现问题如I/O,CPU, 内存 ...

  7. go语言---defer

    go语言---defer https://blog.csdn.net/cyk2396/article/details/78885135 defer 是在函数退出前调用,多个defer遵循 先进后出 的 ...

  8. uva1560

    In an extended version of the game Lights Out®, is a puzzle with 5 rows of 6 buttons each (the actua ...

  9. A brief preview of the new features introduced by OpenGL 3.3 and 4.0

    A brief preview of the new features introduced by OpenGL 3.3 and 4.0   The Khronos Group continues t ...

  10. 乐搏讲自动化测试-Python语言常识及前景(3)

    相信小伙伴们都知道,随着软件测试行业的发展和进步自动化测试已经成为必然.在竞争日益激烈的市场环境中也是你升职加薪的利器. 所以,小编决定从今天起!将要系统.连续.高质量的持续更新「整套自动化测试」文章 ...