Error: Cannot map metafile into memory. Not enough memory
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.
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 ArcGIS Pro 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
- 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?