天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 40|回复: 0

ObjectARX 打印常见问题

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
可能是系统变量默认为后台打印,导致生成缓慢,解决方式,设置BACKGROUNDPLOT系统变量为前台打印

struct resbuf res,res2;
        acedGetVar(_T("BACKGROUNDPLOT"),&res);
        res2.restype=RTSHORT;
        res2.resval.rint=0;
        acedSetVar(_T("BACKGROUNDPLOT"),&res2);       

        //恢复系统变量
        acedSetVar(_T("BACKGROUNDPLOT"),&res);

窗口打印偏移
窗口打印的时候打印范围和设置的范围发生偏移,一般是窗口打印的坐标未设置为DCS。
导致这个问题的原因是View的Target偏移
后台解决方式可以参考 [url]https://blog.csdn.net/txh0001/article/details/44754773[/url]
或者前台设置DCS
        //DCS
        ads_point minPt={ptMin.x,ptMin.y,0.0};
        ads_point maxPt={ptMax.x,ptMax.y,0.0};
        ads_point minPtDcs;
        ads_point maxPtDcs;
        struct resbuf from, to;
        from.restype = RTSHORT;
        to.restype = RTSHORT;
        from.resval.rint = 0;
        to.resval.rint=2;
        acedTrans(minPt,&from,&to,0,minPtDcs);
        acedTrans(maxPt,&from,&to,0,maxPtDcs);

打印预览返回值
这是ARX文档挖的一个坑,获取endPage的函数参数返回值即可。
        es = AcPlPlotFactory::createPreviewEngine(pEngine,AcPlPlotFactory::kShowPlot|AcPlPlotFactory::kShowNextSheet|AcPlPlotFactory::kShowPreviousSheet);
        //-------省略---------
        ACPL_PREVIEWENDPLOT retPreview;
        memset(&retPreview,0,sizeof(ACPL_PREVIEWENDPLOT));
        es = pEngine->endPage(&retPreview);
        //-------省略---------
        switch(retPreview.nStatus)
        {
        case kNormal:
                AfxMessageBox(_T("正常"));
                break;
        case kNext:
                AfxMessageBox(_T("下一页"));
                break;
        case kPrevious:
                AfxMessageBox(_T("上一页"));
                break;
        case kPlot:
                AfxMessageBox(_T("打印"));
                break;
        }

 

 

 

 

ObjectARX 打印常见问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 10:37 , Processed in 0.157527 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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