CAD如何直接打印,不出现打印对话框?

主要用到函数说明:

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("打印成功");

            }

原文地址:https://www.cnblogs.com/yzy0224/p/10966488.html

时间: 2024-11-11 18:52:18

CAD如何直接打印,不出现打印对话框?的相关文章

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

主要用到函数说明: MxDrawXCustomFunction::Mx_Print 直接打印,不出现打印对话框,详细说明如下: 参数 说明 double ptLBx 打印的范围左下角x double ptLBy 打印的范围左下角y double ptRTx 打印的范围右上角x double ptRTy 打印的范围右上角y LPCTSTR pszPrintName 打印机名,如果传为空,取系统默认打印机 LPCTSTR pszPaperName 打印的图纸名,如果传为空,取系统默认打印机设置 LO

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

1.如何设置默认打印机 在FastReport设计界面找到File->Printer Setup菜单,运行该菜单显示"打印机设置"对话框.在打印机(Printer)列表中选择默认打印机,并勾上"save the printer in the report file"选项,将该打印机保存在报表文件中,下次打印时将默认选择该打印机. 2.如何屏蔽打印对话框 显示Report Tree,View->Report Tree. 在Report Tree中选中Rep

在CAD编辑器中能批量打印出黑白的dwg格式的图纸吗?

在CAD编辑器中能批量打印出黑白的dwg格式的图纸吗?在CAD行业的日常工作中,设计师们每天都要借助CAD编辑器来绘制不同类型的CAD图纸,但是编辑CAD图纸之后为了更方便查看CAD图纸,经常需要批量打印CAD图纸,拿在CAD编辑器中能打印出黑白的dwg格式的图纸吗?具体要怎么操作?下面我们就来一起看看具体操作步骤吧! 第一步:打开常用的电脑,在电脑桌面中任意的打开一个浏览器,在浏览器的搜索框中搜索迅捷CAD编辑器,点击下载安装最新版本的CAD编辑器,安装完成后,启动该软件进入到操作窗口,再点击

CAD编辑器中怎么设置打印横向CAD图纸?

CAD编辑器中怎么设置打印横向CAD图纸?建筑设计师们每天都有许多CAD图纸需要进行编辑,但是编辑完成之后还需要交给客户进行查看,但是你的客户要求你把CAD图纸进行打印出来,那么在CAD编辑器中怎么设置打印横向CAD图纸?具体要怎么来进行操作?下面就使用迅捷CAD编辑器标准版来教教大家具体操作过程,希望能够帮助到你们,想要了解的小伙伴们也可以一起来看看. 第一步:首先,打开电脑,在电脑桌面上任意的打开一个浏览器,在浏览器的搜索框中搜索迅捷CAD编辑器(标准版),然后在搜索的结果中,点击官网进行,

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

C#使用printDocument1.Print打印时不显示正在打印对话框有两种方法 第一种,使用PrintController PrintController printController = new StandardPrintController(); printDocument1.PrintController = printController; printDocument1.Print(); 第二种,把窗体的TopMost设为True

Delphi7 调用 Windows 照片查看器打印对话框

Delphi7 调用 Windows 照片查看器打印对话框. uses ShellAPI; var strPictureFilePath: string; begin ShellExecute(Handle, 'print', PChar(strPictureFilePath), nil, nil, SW_SHOW); end;

QT之字体、进度、打印对话框

在上节博客中我们介绍了颜色对话框.那么在日常生活中,除了颜色对话框,我们经常见到的还有字体对话框.进度对话框以及打印对话框.本节我们就来介绍下咋 QT 中这三个对话框是怎样实现的. 我们首先建立一个带有 FontDialogBtn.ProgressDialogBtn.PrintDialogBtn 三个 QPushButton 按钮来分别实现字体对话框.进度对话框以及打印对话框,代码如下: Widget.h 如下所示: #include <QWidget>#include <QPushBu

去掉正在打印对话框

在网上找了很久的资料,经过验证,已成功,网上内容如下: PrintDocument类进行打印,当使用PrintDocument.Print()时,会自动出现一个“正 在打印,第?页,共?页”这样一个窗口提醒用户,该窗口上只有一个“取消”按钮,看来微软是很人性化的,想得也很周到,但微软的人性化却给我带来了意想不 到的麻烦,前面说过了,用户通常是一路回车,当打印窗口出现时,上面只有一个取消按钮,用户按回车太顺手了,该窗口出现后,一回车,完了,打印取消了,如 何不显示该窗口了,在网上搜索了很久,都没有

CAD中批量打印

同事在网上找各种软件来实现CAD图的批量打印,总是问题多多.于是,我想到一个更方便的解决方法,即只要我将一个打印出来,然后就可以用批量处理来实现. 1.在CAD中输入plot命令(或快捷键Ctrl+P),即可弹出打印设置对话框,现在里面需要改的有三项:打印机名称.打印范围(选择"窗口",再手动选择图框).图形方向(纵向,默认是横向),如下图,只要我获取到这三个参数的设置,其他参数默认即可进行打印,可对话框的参数怎么通过代码来获取和实现呢? 2.我点开了打印对话框右下角的帮助,看到了Pl