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的一些方法( ...
随机推荐
- 第2章 GNS3和PacketTracer网络模拟器(1)_GNS3概述
1. 安装和配置GNS3 1.1 GNS3概述 (1)GNS3是一款具有图形化界面,可运行在多平台(包括Windows.Linux.Mac OS等)上面的网络虚拟软件. (2)可以在虚拟环境中运行Ci ...
- python多进程与服务器并发
进程 什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程. 并发与并行 无论是并行还是并发,在用户看 ...
- 学习docker后的个人理解
一.什么是docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行 ...
- MYSQL--表分区、查看分区
一. mysql分区简介 数据库分区 数据库分区是一种物理数据库设计技术.虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时 ...
- centos7 jdk
查看已经自带的jdk: rpm -qa | grep jdk 卸载 sudo yum remove XXX 1.下载 jdk-8u101-linux-x64.rpm http://www.orac ...
- mac OS 安装maven遇到问题e45: 'readonly' option is set
1.下载 Maven, 并解压到某个目录.例如/Users/yintingting/apache-maven-3.3.9 2.打开Terminal,输入以下命令,设置Maven classpath v ...
- 零基础学习python_列表和元组(10-13课)
一时兴起今天又回过头来补一下列表和元组,先来说说列表哈,列表其实是python最经常用到的数据类型了,不仅经常用还很强大呢,这个跟C语言里面的数组是类似的,列表当然也可以增删改查,不过我可没打算用之前 ...
- android 开发 使用自定义布局实现标题栏复用(标题栏内容自定义:使用代码实现和xml布局自定义属性2种办法实现)
在个人学习的情况下可能很少使用自定义布局去实现大量复用的情况下,但是在一个开发工作的环境下就会使用到大量复用的自定义控件. 实现思维: 1.写一个xml的布局,用于标题栏的样式,并且添加在标题栏中你想 ...
- Java实现图像对比类
package com.function; import java.awt.image.BufferedImage; import java.io.BufferedWriter; import jav ...
- Linux网络管理-相关笔记【自用】
ISO/OSI七层模型应用层 APDU 应用层协议数据单元 越靠近用户表示层 PPDU 表示层协议数据单元会话层 SPDU 会话协 ...