Arcgis map export or print Error: Cannot map metafile into memory. Not enough memory
Arcgis map export or print Error: Cannot map metafile into memory. Not enough memory
Link: https://support.esri.com/en/technical-article/000004362
Error Message
When exporting or printing a large map, the following error message is displayed.
"Cannot map metafile into memory. Not enough memory"
This prevents the output file from being created and deletes the interim Enhanced Windows Metafile Format (EMF) file.
Cause
When ArcMap prints or exports to any format, a series of 100 MB EMF files are created. Windows attempts to allocate enough memory to read each 100 MB size EMF metafile. If it cannot allocate a large enough contiguous block of memory, Windows returns a NULL or '0' EMF handle, and ArcMap displays the error message.
Memory in Windows is a combination of physical RAM and disk paging files. Memory is allocated when an application is launched, and it is released when that application is shutdown. Continuous use of applications causes fragmentation of memory and reduces the size of the largest contiguous block. Memory is slowly defragmented when the machine is allowed to sit idle, such as no processing or mouse movements.
An E-size map with raster elements, either raster data or rasterized vector objects, such as those having transparent or picture fill/marker symbology, can easily reach total temp file sizes of 2 to 4 GB. The interim EMF file used to store 2 GB of draw commands is represented as a chain of twenty 100 MB files on disk.
When creating a map of this size or larger, Windows must find at least 100 MB of contiguous (perfectly unfragmented) memory or it returns a NULL handle, and the error is triggered. Because any application or service running on the machine can fragment memory, perfectly contiguous 100 MB memory blocks become scarce after even moderate use. Preserving contiguous memory is difficult even on machines with large amounts of RAM (2048 MB and up), and plenty of disk space for the page file (4 GB and up).
Solution or Workaround
It is highly recommended to use <b>ArcGIS Pro</b> for printing and exporting, especially when experiencing issues caused by the limitations of the ArcMap display engine. More specifically, ArcGIS Pro is not restricted by the graphical device interface (GDI) limitations that some users experience in ArcMap. For example, transparency is natively supported in ArcGIS Pro, preventing the rasterization of layers. Additionally, ArcGIS Pro supports transparency in layout elements.
Note:
ArcGIS Pro does not support exporting Adobe Illustrator files; it is recommended to export using PDF or SVG instead. Also, because ArcGIS Pro does not use the Windows GDI, font substitution or fallback does not occur in ArcGIS Pro. Boxes may appear if using characters unsupported by the chosen font.
If using ArcGIS Pro is not an option, use one of the following workarounds to resolve this issue.
- Change the output size limit setting in the registry to generate smaller temporary metafile (EMF) draw files.
For help with modifying the temp metafile, see: How To: Modify the temp metafile size setting to optimize draw time memory use - Simplify and generalize the map data. Reduce the usage of raster data. Use the clip tools in ArcToolbox to generate new data that focuses on the data required for the layout.
- Reduce the display quality of all raster layers.
- Right-click the raster layer in the Table of Contents and select Properties
- In the Layer Properties dialog box, select the Display tab.
- Lower the display quality in the Display Quality slider from Normal.
- Click OK.
- Increase the virtual memory to the maximum usable by the Windows operating system.
For help with changing virtual memory settings, see: How To: Change the operating system's virtual memory settings. - Restart the computer, and without running any other applications, immediately open and export the MXD document. Restarting releases memory allocations, and this may help export or print the map successfully.
- Discontinue using highly-compressed raster formats, such as MrSID or ECW, which must be completely uncompressed during the output process and can consume a lot of computer resources, including paging file. See the corresponding link in the Related Information section below for more information.
- Remove layers symbolized with transparency or BMP/picture marker symbology from group layers that are turned on and currently being displayed.
- Eliminate transparencies, picture fill symbols, and picture marker symbols from the map. This reduces the amount of raster data in the output.
Problem: Maps print or export blocky, chunky, low quality, or raster banded from ArcMap
Related Information
- FAQ: What are the disadvantages to printing or exporting ArcMap maps that contain MrSID and/or ECW data?
- HowTo: Change the operating system virtual memory settings
- Bug: Transparent/rasterizing layers that are part of a group layer force the entire group layer to rasterize on output
- HowTo: Create a multiple layer marker symbol
- Problem: Maps print or export blocky, chunky, low quality, or raster banded from ArcMap
- HowTo: Use the Output Image Quality option
- HowTo: Add transparency to a layer
- HowTo: Detect if any layers use transparency or picture marker symbology and how many layer masks are present in a map
- FAQ: Can HKEY_CURRENT_USER be edited in the registry for a restricted user profile, when logged in as the administrator?
Last Published: 6/9/2018
Arcgis map export or print Error: Cannot map metafile into memory. Not enough memory的更多相关文章
- Map.putAll方法——追加另一个Map对象到当前Map集合(转)
该方法用来追加另一个Map对象到当前Map集合对象,它会把另一个Map集合对象中的所有内容添加到当前Map集合对象. 语法 putAll(Map<? extends K,? extends V ...
- JAVA中List转换String,String转换List,Map转换String,String转换Map之间的转换类
<pre name="code" class="java"></pre><pre name="code" cl ...
- Map.putAll方法——追加另一个Map对象到当前Map集合
转: Map.putAll方法——追加另一个Map对象到当前Map集合(转) 该方法用来追加另一个Map对象到当前Map集合对象,它会把另一个Map集合对象中的所有内容添加到当前Map集合对象. 语法 ...
- Java遍历Map键、值。获取Map大小的方法
Map读取键值对,Java遍历Map的两种实现方法 第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值 import java.util.HashM ...
- 各种Map的区别,想在Map放入自定义顺序的键值对
今天做统计时需要对X轴的地区按照地区代码(areaCode)进行排序,由于在构建XMLData使用的map来进行数据统计的,所以在统计过程中就需要对map进行排序. 一.简单介绍Map 在讲解Map排 ...
- JAVA中遍历Map和Set方法,取出map中所有的key
Java遍历Set集合 1.迭代器遍历: Set<String> set = new HashSet<String>(); Iterator<String> it ...
- map集合修改其中元素 去除Map集合中所有具有相同值的元素 Properties长久保存的流操作 两种用map记录单词或字母个数的方法
package com.swift.lianxi; import java.util.HashMap; import java.util.Iterator; import java.util.Map; ...
- Fastjson 序列化,反序列化Map对象排序问题(字符串转map,map转字符串)
背景 记录项目中遇到的 关于fastjson jsonobject转string乱序,string转jsonObject乱序问题的解决方案 fastJson issues 问题来源描述参见: http ...
- Map随笔:最常用的Map——HashMap
目录 Map随笔:最常用的Map--HashMap 前言: 1,HashMap的结构 2,HashMap的一些属性(JDK8) 3,HashMap的构造函数(JDK8) 4,HashMap的一些方法( ...
随机推荐
- Hibernate c3p0的整合
Hibernate整合c3p0 Hibernate中可以使用默认jdbc连接池,但是无论功能还是性能都不如c3p0 在pom添加jar包: <!-- hibernate-c3p0 --> ...
- iOS @property语句
@property声明的形式是: @property ( attributes ) type name; type和name的含义一目了然,attributes描述了如何编写访问器. 一.assign ...
- MySql存储过程与函数详解
存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存储过程和函数是在MyS ...
- time random sys os 模块
时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日 ...
- [SHOI2012]信用卡凸包(计算几何)
/* 考验观察法?? 可以发现最终答案等于所有作为圆心的点求出凸包的周长加上一个圆的周长 向量旋转 (x1, y1) 相较于 (x2, y2) 旋转角c 答案是 (dtx * cosc - dty * ...
- EF大数据批量处理----BulkInsert
之前做项目的时候,做出来的系统的性能不太好,在框架中使用了EntityFramework,于是就在网上查资料,研究如何提高EF的性能. 在这分享一篇博客 批量操作提升EntityFramework的性 ...
- Linux实用命令整理
说明 点击标题可进入详细讲解的章节 0. 基本命令 linux 基本命令整理 1. 压缩 解压 tar -zcvf a.tar.gz a #把a压缩成a.tar.gz tar -zxvf a.tar. ...
- 《算法》第六章部分程序 part 2
▶ 书中第六章部分程序,包括在加上自己补充的代码,B-树 ● B-树 package package01; import edu.princeton.cs.algs4.StdOut; public c ...
- DDD随笔-Axon
1. 命令处理程序从存储库中检索域对象(聚合)并执行它们的方法来更改它们的状态.这些聚合通常包含实际的业务逻辑,因此负责维护自己的状态.聚合的状态变化导致产生领域事件.领域事件和聚合形成领域模型. 2 ...
- leetcode990
class Finder: def __init__(self): self.Parent = [i for i in range(26)] def union(self, p, q): self.P ...