以梦为马,不负韶华

搜索
查看: 2265|回复: 8
收起左侧

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

[复制链接]
发表于 2015-6-30 15:31:26 显示全部楼层 |阅读模式

[MXDRAW CAD控件文档]
下面帮助的完整例子,在控件安装目录的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 sJpgFilePath

Jpg文件名

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盘根目录没有写的权限,更改一下程序里保存位置");
            }
}

发表于 2015-6-30 15:31:26 显示全部楼层

谢谢无私分享,请给我一份用用!
回复 支持 反对

使用道具 举报

发表于 2015-6-30 15:31:26 显示全部楼层
这看起来很复杂啊!
回复 支持 反对

使用道具 举报

发表于 2015-6-30 15:31:26 显示全部楼层
很复杂,看的头都疼啊,哈哈
回复 支持 反对

使用道具 举报

发表于 2015-6-30 15:31:26 显示全部楼层
很高大上的样纸...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-30 15:31:26 显示全部楼层
chenhaijunsjy 发表于 2015-7-1 07:59
谢谢无私分享,请给我一份用用!

联系QQ:710714273
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-30 15:31:26 显示全部楼层
奔驰的骏马 发表于 2015-7-8 00:25
这看起来很复杂啊!

不复杂的,有意向联系QQ:710714273
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-30 15:31:26 显示全部楼层
wmm598 发表于 2017-3-11 15:40
很复杂,看的头都疼啊,哈哈

不复杂,可联系QQ:710714273
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-30 15:31:26 显示全部楼层

过奖,可以登陆官网www.mxdraw.com详细了解
回复 支持 反对

使用道具 举报

不想打字就选择快捷回复吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-4-12 12:45

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

快速回复 返回顶部 返回列表