• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
bobird的学习笔记
博客园    首页    新随笔    联系   管理    订阅  订阅

C#+ArcEngine打印横向和纵向调整

C#+ArcEngine打印横向和纵向调整

 

 

在用C#开发ArcEngine程序实现Pagelaylout打印功能的时候,在实现横向打印的时候,总会出现如下图的情况

 

 

 

通过修改axPageLayoutControl1.Page.Orientation = 1;属性发现也不作用;需要通过修改IMapFrame进行修改能够实现横向和纵向的合理变化;

 

横向显示代码如下

    IMap pMap;

    IGraphicsContainer pGraphicsContainer;

    IMapFrame pMapFrame;

    pMap = axPageLayoutControl1.ActiveView.FocusMap;

    pGraphicsContainer = (IGraphicsContainer)axPageLayoutControl1.PageLayout;

    pMapFrame. = (IMapFrame)pGraphicsContainer.FindFrame(pMap);

    ISymbolBorder pSymborder = new SymbolBorderClass();

    pSymborder.CornerRounding = 0;

    IBorder pBorder = pSymborder;

    pMapFrame.Border = pBorder;

    pMapFrame.ExtentType = esriExtentTypeEnum.esriExtentBounds;

    IElement pElement = (IElement)pMapFrame;

    IEnvelope pEnvelop = new EnvelopeClass();

    pEnvelop.PutCoords(0.5, 0.5, 29.2, 20.5);  //这里设置mapframe的大小

    IGeometry pGeometry = pEnvelop;

    pElement.Geometry = pGeometry;

    IPage pPage = axPageLayoutControl1.Page;

    pPage.Orientation = 1;

    pPage.PutCustomSize(29.7, 21.0);  //这里设置page的大小

    axPageLayoutControl1.ActiveView.Refresh();

 

效果如下图

 

 

 

 

纵向显示代码如下

 

    IMap pMap;

    IGraphicsContainer pGraphicsContainer;

    IMapFrame pMapFrame;

    pMap = axPageLayoutControl1.ActiveView.FocusMap;

    pGraphicsContainer = (IGraphicsContainer)axPageLayoutControl1.PageLayout;

    pMapFrame. = (IMapFrame)pGraphicsContainer.FindFrame(pMap);

    ISymbolBorder pSymborder = new SymbolBorderClass();

    pSymborder.CornerRounding = 0;

    IBorder pBorder = pSymborder;

    pMapFrame.Border = pBorder;

    pMapFrame.ExtentType = esriExtentTypeEnum.esriExtentBounds;

    IElement pElement = (IElement)pMapFrame;

    IEnvelope pEnvelop = new EnvelopeClass();

    pEnvelop.PutCoords(0.5, 0.5, 20.5,29.2);  //这里设置mapframe的大小

    IGeometry pGeometry = pEnvelop;

    pElement.Geometry = pGeometry;

    IPage pPage = axPageLayoutControl1.Page;

    pPage.Orientation = 2;

    pPage.PutCustomSize(21.0, 29.7);  //这里设置page的大小

    axPageLayoutControl1.ActiveView.Refresh();

 

效果如下图

 

 

 

 

本实例使用A4纸张的尺寸进行测试,具体的应用还要根据实际的情况进行设置。

文字出处

posted on 2013-04-23 15:17  bobird  阅读(827)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3