CAD网页中实现嵌套打印

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013725001/article/details/91360382

当用户需要打印两个控件的图纸时,可以采用嵌套打印实现。

实现嵌套打印功能,首先将两个控件放入网页中,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

<p align="center">

  <object classid="clsid:74A777F8-7A8F-4e7c-AF47-7074828086E2" id="MxDrawXCtrl1"  codebase="http://www.mxdraw.com/MxDrawX52.CAB#version=7.0.0.1" width=48% height=85% align="left">

    <param name="_Version" value="65536">

    <param name="_ExtentX" value="24262">

    <param name="_ExtentY" value="16219">

    <param name="_StockProps" value="0">

    <param name="IsRuningAtIE" value="1">

    <param name="EnablePrintCmd" value="1">

    <param name="ShowStatusBar" value="1">

    <param name="ShowMenuBar" value="1">

    <param name="ShowToolBars"  value="1">

    <param name="ShowCommandWindow" value="1">

    <param name="ShowModelBar" value="1">

    <param name="Iniset" value="AutoActive=N,LoadMrx=PropertyEditor">

    <param name="ToolBarFiles" value="MxDraw-ToolBar.mxt,MxDraw-ToolBar-DrawParam.mxt,MxDraw-ToolBar-Draw.mxt,MxDraw-ToolBar-Edit.mxt">

    <SPAN STYLE="color:red">不能装载CAD控件。请确认你可以连接网络或者检查浏览器的选项中安全设置。<a href="http://www.mxdraw.com/MxDrawX52.msi">http://www.mxdraw.com/MxDrawX52.msi 安载CAD控件</a></SPAN>

  </object>

  <object classid="clsid:74A777F8-7A8F-4e7c-AF47-7074828086E2" id="MxDrawXCtrl2"  codebase="http://www.mxdraw.com/MxDrawX52.CAB#version=7.0.0.1"width=48% height=85% align="right">

    <param name="_Version" value="65536">

    <param name="_ExtentX" value="24262">

    <param name="_ExtentY" value="16219">

    <param name="_StockProps" value="0">

    <param name="IsRuningAtIE" value="1">

    <param name="EnablePrintCmd" value="1">

    <param name="ShowStatusBar" value="1">

    <param name="ShowMenuBar" value="1">

    <param name="ShowToolBars"  value="1">

    <param name="ShowCommandWindow" value="1">

    <param name="ShowModelBar" value="1">

    <param name="Iniset" value="AutoActive=N,LoadMrx=PropertyEditor">

    <param name="ToolBarFiles" value="MxDraw-ToolBar.mxt,MxDraw-ToolBar-DrawParam.mxt,MxDraw-ToolBar-Draw.mxt,MxDraw-ToolBar-Edit.mxt">

    <SPAN STYLE="color:red">不能装载CAD控件。请确认你可以连接网络或者检查浏览器的选项中安全设置。<a href="http://www.mxdraw.com/MxDrawX52.msi">http://www.mxdraw.com/MxDrawX52.msi 安载CAD控件</a></SPAN>

  </object>

首先通过id得到两个控件,新建一个COM组件对象,设置打印的位置等常规设置,具体实现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

function BatchPrintDialog() {

    var ocx1 = document.getElementById("MxDrawXCtrl1");

    var ocx2 = document.getElementById("MxDrawXCtrl2");

    var print = ocx1.NewComObject("IMxDrawPrint");

    // 开始打印.

    print.BeginNestedPrint();

    //iFlag = 0表示页边距,iFlag = 1表示打印区域矩形框位置

    print.Flag = 1;

    // 打印区位置(10,10,200,100),坐标系统是,X从左到右,Y从上到下.

    //打印的页边距的左边距离

    print.dLeftPageMargin = 10;

    //打印的页边距的上边距离

    print.dTopPageMargin = 10;

    //打印的页边距的右边距离

    print.dRightPageMargin = 200;

    //打印的页边距的下边距离

    print.dBottomPageMargin = 100;

    // 把屏幕显示内容进行的打印,打印第一个控件。

    ocx1.MakeCurrentOcx();

    print.PrintScreen();

    ocx2.MakeCurrentOcx();

    // 打印区位置(10,110,200,210),坐标系统是,X从左到右,Y从上到下.

    //打印的页边距的上边距离

    print.dTopPageMargin = 110;

    //打印的页边距的下边距离

    print.dBottomPageMargin = 210;

    // 把屏幕显示内容进行的打印,打印第二个控件。

    print.PrintScreen();

    //结束嵌套打印

    print.EndNestedPrint();

}

网页中演示效果如下,用户可以打印在两个控件里面的图纸内容。

ieprint.png

猜你喜欢

转载自blog.csdn.net/u013725001/article/details/91360382
今日推荐