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 = newSymbolBorderClass();
pSymborder.CornerRounding = 0;
IBorder pBorder = pSymborder;
pMapFrame.Border =pBorder;
pMapFrame.ExtentType = esriExtentTypeEnum.esriExtentBounds;
IElement pElement = (IElement)pMapFrame;
IEnvelope pEnvelop = newEnvelopeClass();
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 = newSymbolBorderClass();
pSymborder.CornerRounding = 0;
IBorder pBorder = pSymborder;
pMapFrame.Border =pBorder;
pMapFrame.ExtentType = esriExtentTypeEnum.esriExtentBounds;
IElement pElement = (IElement)pMapFrame;
IEnvelope pEnvelop = newEnvelopeClass();
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纸张的尺寸进行测试,具体的应用还要根据实际的情况进行设置。
文章来源:http://blog.csdn.net/sydbc/article/details/17120123
通过修改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 = newSymbolBorderClass();
pSymborder.CornerRounding = 0;
IBorder pBorder = pSymborder;
pMapFrame.Border =pBorder;
pMapFrame.ExtentType = esriExtentTypeEnum.esriExtentBounds;
IElement pElement = (IElement)pMapFrame;
IEnvelope pEnvelop = newEnvelopeClass();
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 = newSymbolBorderClass();
pSymborder.CornerRounding = 0;
IBorder pBorder = pSymborder;
pMapFrame.Border =pBorder;
pMapFrame.ExtentType = esriExtentTypeEnum.esriExtentBounds;
IElement pElement = (IElement)pMapFrame;
IEnvelope pEnvelop = newEnvelopeClass();
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纸张的尺寸进行测试,具体的应用还要根据实际的情况进行设置。
文章来源:http://blog.csdn.net/sydbc/article/details/17120123
0 个评论
相关问题
- 怎样调整要素的大小,比例不变的情况下?
- ArcEngine 复制镶嵌数据集
- ArcGIS Runtime SDK for Android加载本地影像时,如何对RGB波段进行调整?
- arcgis api for js中三维的TileLayer默认会显示在MapImageLayer的下面且显示顺序无法调整吗
- 请问如何使用ArcEngine实现(在右击图例中)Convert To Gtaphics这一功能?
- 按照Engine+开发手册ArcEngine_10.0_C#二次开发编写的鹰眼的代码,运行时鹰眼不显示!
- 请问如何在C# ArcEngine开发中调用GP工具处理后将数据保存到到任意位置?并读取?
- 我的VS调用idl和ArcEngine的组件都不成功,该怎么办?
- 创建地图文档后,已知旋转角度如何旋转其中的地图?ArcEngine编码实现,效果图见附件
- 注册arcsde数据到arcgis server中,如何采用Arcengine或py代码实现?
- arcmap插值工具插值范围调整