zoukankan      html  css  js  c++  java
  • 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纸张的尺寸进行测试,具体的应用还要根据实际的情况进行设置。

    纵向显示代码如下

    本博客有部分内容来自网络,如有问题请联系:hebeilijianghua@qq.com,并注明来自博客园。
  • 相关阅读:
    指定的参数已超出有效值的范围。参数名:sit ,先仔细看看错误和我的一样不一样
    简单说下C#变量的作用域
    C#常用的字符串处理方法
    驼峰命名、帕斯卡命名、匈牙利命名--三种命名方法
    Python的安装
    Python下numpy的使用
    命名法:骆驼(Camel)、帕斯卡(pascal)、匈牙利(Hungarian)、下划线(_)
    PHP中高级面试问题集锦
    利用python,生成word
    python实现网页截图
  • 原文地址:https://www.cnblogs.com/leebokeyuan/p/6768437.html
Copyright © 2011-2022 走看看