lihao2014 发表于 2015-6-30 15:31:26

CAD控件:把网页显示的 dwg保存为jpg


控件文档]下面帮助的完整例子,在控件安装目录的Sample\Ie\ iedemo.htm中. 1.       主要用到的函数说明:A.   MxDrawXCustomFunction::Mx_DrawToJpg把当前控件显示的DWG,任何一个给定区域转成jpg文件 。函数接口详细说明如下: static BOOL Mx_DrawToJpg(IN CString sJpgFilePath, IN double dLbx, IN double dLby, IN double dRtx, INdouble dRty, IN int iWidth = -1, IN int iHeight = -1, IN LONG* pBkColor = NULL);
参数说明
IN CString sJpgFilePathJpg文件名
IN double dLbx输出范围的左下角坐标X,文档坐标系统
IN double dLby输出范围的左下角坐标Y,文档坐标系统
IN double dRtx输出范围的右上角坐标X,文档坐标系统
IN double dRty输出范围的右上角坐标Y,文档坐标系统
IN int iWidth = -1位图宽度方向的像素,是-1并iHeight不是-1,由高度和文档高宽算出,否则取系统默认值:1000
IN int iHeight = -1位图高度方向的像素,是-1并iWidth不是-1, 由高度和文档高宽算出,否则取系统默认值:1000
IN LONG* pBkColor = NULL位图的背影色,如果为NULL,取黑色为背景色
hOcx当前控件名柄
2.       JS中实现代码说明 用户点击 “保存显示区域到jpg” 按钮,将执行savejpg()函数function savejpg(){       //下面的DoCommand(2)调用程序将跳到DoCommandEventFunc(iCmd)执行       document.getElementByIdx_x("MxDrawXCtrl").DoCommand(2);} function WriteJpg(obj){         // 得到控件对象。            var axMxDrawX = document.getElementByIdx_x(obj);            // 得到当前视区显示的范围.            var viewBound = axMxDrawX.CallCustomFunction("Mx_GetViewCoord","");                      // 计算出保存的jpg的宽,高.            var jpgWidth = viewBound.AtDouble(3) - viewBound.AtDouble(1);            var jpgHeight = viewBound.AtDouble(4) - viewBound.AtDouble(2);                     // 把jpg的宽度、高度,由文档坐标变成象素坐标.            var jpgWidth = axMxDrawX.CallCustomFunctionDoubleParam1("Mx_DocLongToViewCoord",jpgWidth);            jpgWidth = jpgWidth.AtLong(1);            var jpgHeight = axMxDrawX.CallCustomFunctionDoubleParam1("Mx_DocLongToViewCoord",jpgHeight);            jpgHeight = jpgHeight.AtLong(1);             // 创建一个参数对象.                     var savejpgParam =axMxDrawX.CallCustomFunction("Mx_NewResbuf","");             // 设置保存提jpg文件的位置,默认保存到c:\\1.jpg            savejpgParam.AddString("c:\\1.jpg");             // 输入到jpg文件的图纸范围,就是当前视能看到范围            savejpgParam.AddDouble(viewBound.AtDouble(1));            savejpgParam.AddDouble(viewBound.AtDouble(2));            savejpgParam.AddDouble(viewBound.AtDouble(3));            savejpgParam.AddDouble(viewBound.AtDouble(4));                  // jpg文件的宽高.            savejpgParam.AddLong(jpgWidth);            savejpgParam.AddLong(jpgHeight);                      // 调用保存jpg函数.            var ret = axMxDrawX.CallCustomFunctionEx("Mx_DrawToJpg",savejpgParam);             if(ret.AtString(0) == "Ok")            {               alert("成功把当前显示内容保存为jpg,文件保存在c:\\1.jpg");            }            else            {            alert("保存失败.,可能C盘根目录没有写的权限,更改一下程序里保存位置");            }}

chenhaijunsjy 发表于 2015-6-30 15:31:26


谢谢无私分享,请给我一份用用!

奔驰的骏马 发表于 2015-6-30 15:31:26

这看起来很复杂啊!

wmm598 发表于 2015-6-30 15:31:26

很复杂,看的头都疼啊,哈哈

笑笑_dwNsS 发表于 2015-6-30 15:31:26

很高大上的样纸...

lihao2014 发表于 2015-6-30 15:31:26

chenhaijunsjy 发表于 2015-7-1 07:59
谢谢无私分享,请给我一份用用!

联系QQ:710714273

lihao2014 发表于 2015-6-30 15:31:26

奔驰的骏马 发表于 2015-7-8 00:25
这看起来很复杂啊!

不复杂的,有意向联系QQ:710714273

lihao2014 发表于 2015-6-30 15:31:26

wmm598 发表于 2017-3-11 15:40
很复杂,看的头都疼啊,哈哈

不复杂,可联系QQ:710714273

lihao2014 发表于 2015-6-30 15:31:26

笑笑_dwNsS 发表于 2017-3-14 08:15
很高大上的样纸...

过奖,可以登陆官网www.mxdraw.com详细了解
页: [1]
查看完整版本: CAD控件:把网页显示的 dwg保存为jpg