Printing and exporting maps containing service layers
You can print and export maps containing service layers. However, you should keep in mind that there are certain limitations when you are working with servers that provide image-based services. Most servers maximize performance and availability by specifying a size limit on all output images they create. This size limit is set by each server and can vary from service to service. Since services are primarily designed to display on a computer monitor, size limits set by the server will likely be commensurate with the size of an image displayed on the average monitor at the screen's resolution, usually 96 dots per inch (dpi). Also, most cached Web map services, such as those available from ArcGIS online, are designed for viewing on the screen (96 dpi).
It is important to note that when you print or export a map with an image service, you are working with a raster. Output Image Quality (OIQ) will affect the drawing of all the features in the service, including lines and text. For best quality, you may want to use an OIQ of Best (resampling ratio of 1 to 1). However, this does not come without cost—an increase in dpi will result in a request to the server for a larger image, which may cause problems when the server is unable to provide an image with such high resolution.
An example of viewing versus printing an image service
You have added an image-based service to a data frame that is 5 inches by 5 inches, and the resolution of the computer monitor is 96 dpi. At a dpi of 96, 5 inches is 480 pixels (5 x 96 = 480).To get an image to fit this data frame at this dpi, ArcMap requests that the server create an image of 480 x 480 pixels, or 230,400 total pixels.
An image of this size should be below the limit of the server. You can check the size of the image received from the server by looking at the properties of the image using Windows Explorer or an image viewing application. The image file should be located in the directory specified by the TMP environment variable for the current user (such as C:\Documents and Settings\<current user>\Local Settings\Temp). If the TMP variable does not exist, then the directory for the TEMP variable will be used. If you are using Windows Explorer, simply locate the image by ordering the files by date modified (the name of the image file will be meaningless to you), right-click the file, then click Properties. The file size is listed on the Summary tab.
You can see that the width and height of the image is 480 x 480 pixels—just what ArcMap requested. This image is being used to display the service within the layout view on your computer monitor. This is not the image used to actually print the map. A separate image request will be made when you actually print or export the map, since the parameters for the requested image are likely to change based on print or export settings.
However, now you want to print the same map containing the image service layer and send it to a printer that has a dpi of 600. With the OIQ set to Best, ArcMap sets a dpi of 600 and requests from the server an image with a height and width of 3,000 pixels each (5 inches x 600 pixels)—a total of 9 million pixels. You can see the difference in requesting from the server an image for on-screen display and one to be printed. Although the image's dimensions are 5 inches by 5 inches in both cases, the number of pixels required for the image to be printed is significantly larger.
Example output purpose |
Example dpi |
Height and width in inches |
Height and width in pixels (dpi x inches) |
Total pixels requested |
---|---|---|---|---|
On-screen display |
96 |
5 x 5 |
480 x 480 |
230,400 |
Printing |
600 |
5 x 5 |
3000 x 3000 |
9,000,000 |
If the requested image file size exceeds the limit set by that server—as it may with a request such as this one—the layer will either be stretched or not drawn at all, depending on the type of service. See the next sections for more information about printing different kinds of service layers.
The images of a cached Web map layer are of a size and dpi preset by the service administrator. Changing the size of the data frame has no effect on the tiled image needed to draw the layer. The quality of the printed or exported cached Web map layer can vary depending on the resolution you are trying to print or export at. Keep in mind that these services are primarily designed to be viewed on screen. For more information, see Using cached Web map layers.
ArcGIS Server map service layers
When viewing the map on-screen, such as in Data view, Layout view, or Print Preview, the dpi is the resolution of your computer monitor. When you send the map to print, the dpi in the request will be the dpi of the printer, or, if you are exporting, the dpi in the request will be the one you set for your output file. Therefore, when you print or export a map containing an image service, ArcMap sends a new request to the server. The dpi value in the request will be adjusted based on the Output Image Quality value set in ArcMap.
The height and width refer to the requested image dimensions in pixels, and the map service has a size limit. Similar to ArcIMS Image and ArcMap Server services, if ArcMap makes a request that is larger than the limit, the server will send the largest image it can. ArcMap will then stretch the image to fit the data frame. Therefore, the quality of the image decreases as it stretches; the more ArcMap has to stretch, the worse it will look.
For the average ArcGIS map service, you should be able to print a decent-looking letter-sized map. Unless the server allows larger image sizes, attempting to create larger-sized prints will dramatically affect quality. The size limit cannot be changed by the client (ArcMap); it can only be changed by the ArcGIS Server administrator.
Legends are fully supported for ArcGIS Server map service layers. When consuming ArcGIS Server map service legend items, images for individual symbols and text labels are stored in memory on the client machine. If the map service contains many legend items, there is a risk that your computer may run out of resources needed to display the legends. Therefore, by default, ArcMap will not display the legend for sublayers that have more than 100 legend items.
Learn more about Using ArcGIS Server map service layers.
ArcIMS service layers
ArcIMS Feature services
Since ArcIMS Feature services are not based on images, they do not have the same limitations. Remember, though, the features of the service are being sent over a network, so performance may decline depending on the number of features being streamed.
ArcIMS Image and ArcMap services
An ArcMap image request (<GET_IMAGE> request) to an ArcIMS service includes four parameters: dpi, height, width, and autosize.
When viewing the map on-screen, such as in Data view, Layout view, or Print Preview, the dpi is the resolution of your computer monitor. When you send the map to print, the dpi in the request will be the dpi of the printer, or, if you are exporting, the dpi in the request will be the one you set for your output file. Therefore, when you print or export a map containing an image service, ArcMap sends a new request to the server. The dpi value in the request will be adjusted based on the Output Image Quality value set in ArcMap.
The height and width refer to the requested image dimensions in pixels. When the autosize property is set to True (ArcMap does this automatically), the ArcIMS server will send the largest image it can when a requested size is larger than the set limit. For example, when the image size needed to fill a data frame on a page layout is larger than allowed by the server, ArcMap gets the largest image it can from the server and stretches it to fit the data frame. Therefore, the quality of the image decreases as it stretches; the more ArcMap has to stretch, the worse it will look. For the average ArcIMS service, you should be able to print a decent-looking letter-sized map. Unless the server allows larger image sizes, attempting to create larger-sized prints will dramatically affect quality.
For many ArcIMS services, 4 MB—or 1024 x 1024 pixels (1,048,576 total pixels)—is the size limit for image output. The size limit is at the discretion of the server administrator and can be smaller or larger than 4 MB. The size limit cannot be changed by the client (ArcMap).
An example of printing ArcIMS Image and ArcMap services
The map from the introduction section is sent to a printer with a dpi setting of 600 and Output Image Quality of Best. ArcMap requests an image of 9 million pixels, but the requested image size (3000 x 3000 pixels) far exceeds the limit allowed by the server (1024 x 1024 pixels).
The ArcIMS server sends the largest image it can, so at a dpi of 600, this allows an image that is 1.71 inches by 1.71 inches. To fill the 5-by-5-inch data frame in the printed layout, the image will need to be stretched. You should be able to print your map on letter-sized paper.
However, now you change the layout page size to ANSI E (44 inches by 34 inches) and scale the map elements proportionally to the change in the page size. You then make the appropriate change in the map scale to keep the scale consistent with the previous map, so the data frame size on the layout page is now roughly 27 inches by 27 inches. By looking at the full layout on-screen, it appears that the image quality is good.
However, if you click the Zoom to 100% button on the Layout toolbar, you can see how the image will actually appear when it is printed. As you can see from this example, you may find that the quality is poor and unsuitable for printing.
The maximum size allowed by the server cannot adequately accommodate the size of the data frame in the printed map. There are only two ways to remedy this: reduce the size of the printed map or increase the service output size limit. To increase this limit, you must have server administrative privileges.
Legend support in ArcIMS layers
Depending on the service, you may notice some unexpected results when creating a legend. You may notice that the legend items for some ArcIMS Image service sublayers are duplicated. Here is an example:
This occurs because ArcIMS allows scale-dependent rendering, which is done within a single layer. However, ArcMap does not support scale-dependent rendering. Since the rendering changes from scale range to scale range, ArcMap will display all ArcIMS rendering groups.
This will not affect the display of sublayer features on the map. This only affects the table of contents and the legend. You may need to manually edit your legend.
Learn more about Using ArcIMS service layers.
WMS service layers
The Web Map Service (WMS) server may or may not state an output image size limit. In cases where ArcMap is aware of the size limit, the results you get with a WMS layer in a print or via export will be similar to other image service layers, such as an ArcIMS Image service layer. When ArcMap needs an image larger than the limit, it will get the largest image that the WMS server allows and stretch the image to fit the data frame. This results in varying output quality.
If the WMS server does not state an output image size limit, ArcMap cannot determine the WMS server size limit, so it cannot choose the largest size. ArcMap also cannot choose an arbitrary size, since the image may be unnecessarily stretched, which can adversely affect quality. While some WMS servers report the size limit in the error message, other WMS servers may not. You will need to experiment with the sizing to discover the largest size you can use to print or export.
For example, a request for the 9 million-pixel image in the earlier example may exceed the server's image size limit. However, if you change the OIQ to Fast (resampling ratio of 1:5), ArcMap will request a smaller image. If the image size is within the limits of the WMS server, the layer will draw.
Legend support in WMS layers
According to the Open Geospatial Consortium, Inc. (OGC), WMS specifications, legend support is optional. When the server does not support legends, you will not see WMS service layers listed in the legend wizard, and you will not see any legend items in the table of contents for these layers. It is important to note that a WMS legend is a composite image that includes all symbology and text labels for a WMS sublayer. This is different from a legend for an ArcIMS service sublayer or an ArcGIS Server map service sublayer, where each part of the legend—each individual symbol and each text label—is sent to and handled by ArcMap separately. Therefore, the size of a WMS legend image can be much larger than the size of an ArcIMS image service or ArcGIS Server map service legend image.
In cases where the WMS server supports legends, you may experience a number of things depending on the size of the legend item made available by the WMS server. If the size is relatively small, you should see the legend in the ArcMap table of contents, and you should see the WMS sublayer listed in the Legend Wizard when you insert a legend into a page layout. If you do not see the legend items in the table of contents or the sublayers listed in the Legend Wizard, it may be that the size of the legend image is large. In this case, you can view the legend on the Styles tab on the WMS sublayer Properties dialog box. If you wish to display the legend in the page layout, you can use the sublayer context menu command Add WMS Legend to Map. This command will add the legend as a graphic to the map. Note that you can only add a single WMS sublayer legend at any one time.
For more information regarding OGC WMS specifications, see the OGC Web site at www.opengeospatial.org/standards.
Learn more about Using WMS service layers.