【ArcGIS Pro二次开发】(52):布局导出图片(批量)

news/2025/3/13 5:43:32/

在ArcGIS Pro中设定好布局后,可以直接导出为各种类型的图片。

这是很基本的功能,但是如果你的布局很多,一张一张导图就有点费劲。

之前有网友提出希望可以批量导图,要实现起来并不难,于是就做了这个工具。


一、要实现的功能

如上图所示,点击【制图相关】面板下【导出布局(批量)】按钮,弹出工具框如下:

输入参数中:

1、要导出图片的文件夹位置。

2、导出图片类型。这里预置了PNG,JPG和PDF这三种常用的图片类型,如果还有需求可以再添加。

3、导出图片分辨率,默认设置为300,可手动调整。

示例工程中有2个布局,点击执行后生成结果如下:


二、实现流程

工具的核心代码并不多。

首先,获取当前工程的所有布局:

                // 获取当前工程中的所有LayoutProjectItemIEnumerable<LayoutProjectItem> layoutProjects = Project.Current.GetItems<LayoutProjectItem>();await QueuedTask.Run(() =>{foreach (LayoutProjectItem layoutProject in layoutProjects){// 获取layout Layout layout = layoutProject.GetLayout();// TODO});

然后就可以导出了,不过要先设置好导出的图片格式:

                        // JPG图片属性JPEGFormat JPG = new JPEGFormat(){HasWorldFile = true,Resolution = dpi,               // 分辨率OutputFileName = filePath + @"\" + layout.Name + @".jpg",      // 输出路径};// PNG图片属性PNGFormat PNG = new PNGFormat(){HasWorldFile = true,Resolution = dpi,               // 分辨率OutputFileName = filePath + @"\" + layout.Name + @".png",      // 输出路径};// PDF图片属性PDFFormat PDF = new PDFFormat(){OutputFileName = filePath + @"\" + layout.Name + @".pdf",      // 输出路径Resolution = dpi,               // 分辨率DoCompressVectorGraphics = true,   // 是否压缩矢量图形DoEmbedFonts = true,            // 是否执行嵌入字体         HasGeoRefInfo = true,             // 是否具有地理参考信息ImageCompression = ImageCompression.Adaptive,   // 图形压缩.自适应ImageQuality = ImageQuality.Best,           // 图形质量.最好LayersAndAttributes = LayersAndAttributes.LayersAndAttributes   // 图层  属性};

导出时需要判断一下图片格式:

                        // 导出JPGif (pic_type == "jpg"){layout.Export(JPG);}// 导出PNGif (pic_type == "png"){layout.Export(PNG);}// 导出PDFif (pic_type == "pdf"){layout.Export(PDF);}

以上便实现了工具的主要功能。


三、工具文件分享

我把工具都集合成工具箱,不再单独放单个工具,可以到这里下载完整工具箱,会不断更新:

【ArcGIS Pro二次开发】:CC工具箱https://blog.csdn.net/xcc34452366/article/details/131506345PS:可以直接点击...bin\Debug\net6.0-windows\下的.esriAddinX文件直接安装。


http://www.ppmy.cn/news/982995.html

相关文章

Longhorn vs Rook vs OpenEBS vs Portworx vs IOMesh:细说 5 款 K8s 持久化存储产品优劣势

云原生时代下&#xff0c;越来越多的企业开始使用 Kubernetes&#xff08;K8s&#xff09;承载数据库、消息中间件等“生产级”有状态工作负载。由于这些应用对数据持久保存、性能、容量扩展和快速交付具有较高的要求&#xff0c;企业往往需要采用专为 Kubernetes 环境设计的持…

NestJS笔记目录

学习使用的开发工具 编译器 VSCode 开发语言工具 TypeScript 重要程度分类 一般 这个程度的知识点主要是达到熟练掌握即可&#xff0c;不用太深入研究和学习。 重要 这个程度的知识点主要是达到熟练掌握&#xff0c;并且内部的原理切要熟记&#xff0c;因为会关联到其他的知…

Java对象中敏感字段泛型过滤

Java对象中敏感字段泛型过滤 public static <T> T removeFiled(T obj)throws Exception{//需要过滤的敏感字段Set<String> set new HashSet<>();set.add("password");//获取类中所有字段名Field[] fields obj.getClass().getDeclaredFields();fo…

Qt加载字体文件

本文记录如何使用 Qt 加载外部字体文件&#xff0c;并遍历字体名称和样式名称。 bool LoadFont(const QString& fontPath) {const int fontId QFontDatabase::addApplicationFont(fontPath);if (fontId -1) {return false;}// 遍历字体名和样式名 #if QT_VERSION > QT…

论文代码学习—HiFi-GAN(2)——鉴别器discriminator代码

文章目录 引言正文鉴别器多周期鉴定器多尺度鉴定器问题 总结 引言 这里翻译了HiFi-GAN这篇论文的具体内容&#xff0c;具体链接。这篇文章还是学到了很多东西&#xff0c;从整体上说&#xff0c;学到了生成对抗网络的构建思路&#xff0c;包括生成器和鉴定器。细化到具体实现的…

SAP安装笔记

1、准备安装介质&#xff0c;SWPM10SP25&#xff0c;51050829_NW750_JavaExport、SAP_HANA_CLIENT、kernel放到/sapcd/NetWeaver目录下 ​​​​​​​ 进入SWPM10SP25执行./sapinst安装 2、待出现 “Open your browser and paste the following URL address to access the G…

TypeScript -- 函数

文章目录 TypeScript -- 函数JS -- 函数的两种表现形式函数声明函数的表达式es6 箭头函数 TS -- 定义一个函数TS -- 函数声明使用接口(定义)ts 定义参数可选参数写法 -- ?的使用TS函数 -- 设置剩余参数函数重载 TypeScript – 函数 JS – 函数的两种表现形式 我们熟知js有两…

c#数据类型:15种数据类型类型(13种基本数据类型,2种引用类型)

数据类型分为基本数据类型和引用数据类型 c#中,基本数据类型有13个,引用数据类型有两个 值类型整型名称命名空间说明范围8个byteSystem.Byte8位无符号整型0-255sbyteSystem.sbyte8位有符号整型-128-127intSystem.int3232位有符号整型uintsystem.uint3232位无符号整型shortsys…