ExportToProductionPDF (arcpyproduction.mapping)

Summary

Exports the page layout or data frame of an .mxd file to a Production Portable Document Format (PDF) file. The Production PDF exporter includes the following capabilities:

Discussion

PDF files are designed to be consistently viewable and printable across different platforms. They are commonly used for distributing documents on the web and are becoming a standard interchange format for content delivery. ArcMap PDFs are editable in many graphics applications and retain annotation, labeling, and attribute data for map layers from the ArcMap table of contents. PDF exports from ArcMap support embedding of fonts and thus can display symbology correctly even if the user does not have Esri fonts installed. PDF exports from ArcMap can define colors in CMYK or RGB values.

To export a single data frame instead of the entire page layout, pass a DataFrame object to the function's data_frame parameter. Because data frame exports do not have an associated page to provide height and width information, you must provide this via the df_export_width and df_export_height parameters.

Controlling graphic quality of the generated image differs for page layout exports versus data frame exports. When exporting a page layout, control image detail by changing the resolution parameter. When exporting a data frame, keep the resolution parameter at its default value, and change the df_export_width and df_export_height parameters to alter image detail. The height and width parameters directly control the number of pixels generated in the export file and are only used when exporting a data frame. Images with larger numbers of pixels will have higher image detail. For most page layout exports, the default parameter values should generate good results and nice looking export images on the first try. For data frame exports, you may need to experiment with the df_export_width and df_export_height values a few times before getting the result you want.

Refer to Exporting to Production PDF in ArcGIS Help for more detailed discussions on exporting maps.

NoteNote:

File sizes can differ when map documents are exported using arcpyproduction.mapping instead of the ArcMap commands. This is due to the differences in the functions in the Python module versus the commands in ArcMap.

Syntax

ExportToProductionPDF (map_document, out_pdf, setting_file, {data_frame}, {df_export_width}, {df_export_height}, {resolution}, {image_quality}, {colorspace}, {compress_vectors}, {image_compression}, {picture_symbol}, {convert_markers}, {embed_fonts}, {layers_attributes}, {georef_info}, {jpeg_compression_quality}, {clip_to_graphics_extent})
ParameterExplanationData Type
map_document

A variable that references a MapDocument object.

MapDocument
out_pdf

A string that represents the path and file name for the output export file.

String
setting_file

A path to a file that contains the Production PDF settings to be used when the PDF is generated. The settings file includes the height, width, resolution, color mapping information, and other properties.

String
data_frame

A variable that references a DataFrame object. Use the string/constant PAGE_LAYOUT to export the map document's page layout instead of an individual data frame.

(The default value is PAGE_LAYOUT)

DataFrame
df_export_width

A number that defines the width of the export image in pixels for a data frame export; df_export_width is only used when exporting a data frame. Exporting a page layout uses the map document page width instead of df_export_width.

(The default value is None)

Integer
df_export_height

A number that defines the height of the export image in pixels for a data frame export; df_export_height is only used when exporting a data frame. Exporting a page layout uses the map document page height instead of df_export_height.

(The default value is None)

Integer
resolution

A number that defines the resolution of the export file in dots per inch (DPI).

(The default value is None)

Integer
image_quality

A string that defines output image quality, the draw resolution of map layers that draw as rasters.

  • BESTAn output image quality resample ratio of 1
  • BETTERAn output image quality resample ratio of 2
  • NORMALAn output image quality resample ratio of 3
  • FASTERAn output image quality resample ratio of 4
  • FASTESTAn output image quality resample ratio of 5

(The default value is None)

String
colorspace

A string that defines the colorspace of the export file. Valid values are CYMK and RGB.

  • CMYKCyan, Magenta, Yellow, and blacK color model
  • RGBRed, Green, and Blue color model

(The default value is None)

String
compress_vectors

A Boolean that controls compression of vector and text portions of the output file. Image compression is defined separately.

(The default value is None)

Boolean
image_compression

A string that defines the compression scheme used to compress image or raster data in the output file.

  • ADAPTIVEAutomatically selects the best compression type for each image on the page. JPEG will be used for large images with many unique colors. DEFLATE will be used for all other images.
  • JPEGA lossy data compression.
  • DEFLATEA lossless data compression.
  • LZWLempel-Ziv-Welch, a lossless data compression.
  • NONECompression is not applied.
  • RLERun-length encoded compression.

(The default value is None)

String
picture_symbol

A string that defines whether picture markers and picture fills will be converted to vector or rasterized on output.

  • RASTERIZE_BITMAP Rasterize layers with bitmap markers/fills.
  • RASTERIZE_PICTURERasterize layers with any picture marker/fill.
  • VECTORIZE_BITMAPVectorize layers with bitmap markers/fills.

(The default value is None)

String
convert_markers

A Boolean that controls the conversion of character-based marker symbols to polygons. This allows the symbols to appear correctly if the symbol font is not available or cannot be embedded; however, setting this parameter to True disables font embedding for all character-based marker symbols, which can result in a change in their appearance.

(The default value is None)

Boolean
embed_fonts

A Boolean that controls the embedding of fonts in the export file. Font embedding allows text and character markers to be displayed correctly when the document is viewed on a computer that does not have the necessary fonts installed.

(The default value is None)

Boolean
layers_attributes

A string that controls inclusion of PDF layer and PDF object data (attributes) in the export file.

  • LAYERS_ONLYExport PDF layers only.
  • LAYERS_AND_ATTRIBUTESExport PDF layers and feature attributes.
  • NONENone.

(The default value is None)

String
georef_info

A Boolean that enables the export of coordinate system information for each data frame into the output PDF file.

(The default value is None)

Boolean
jpeg_compression_quality

A number that controls compression quality value when image_compression is set to ADAPTIVE or JPEG. The valid range is 1 to 100. A jpeg_compression_quality of 100 provides the best quality images but creates large export files. The recommended range is between 70 and 90.

(The default value is None)

Integer
clip_to_graphics_extent

A Boolean that controls the clipping of output to the extent of the graphics on the page layout. It is used only when exporting a page layout.

Boolean

Code Sample

ExportToProductionPDF example 1

This script opens a map document and exports the page layout to a Production PDF file using default values for all options.

import arcpy
import arcpyproduction

# Check out Production Mapping license
arcpy.CheckOutExtension("foundation")

# Define variables
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
settings = r"C:\Project\RGBtoCMYKwOverPrint.xml"

# Export to Production PDF using only the required parameters
arcpyproduction.mapping.ExportToProductionPDF(mxd,
     r"C:\Project\Output\Project.pdf", settings)

# Check in extension
arcpy.CheckInExtension('foundation')
ExportToProductionPDF example 2

This script will export multiple map documents using the same settings file. The PDFs are generated with file names that match the source MXDs.

import os
import arcpy
import arcpyproduction

# Check out Production Mapping license
arcpy.CheckOutExtension("foundation")

# Define variables
mxds = [r"C:\Project\Project1.mxd", r"C:\Project\Project2.mxd",
        r"C:\Project\Project3.mxd"]
opath = r"C:\Project\PDF"
settings = r"C:\Project\Export_Settings\RGBtoCMYKwOverPrint.xml"

# Export multiple MXDs to Production PDF using the same settings file
for i, mxd in enumerate(mxds):
    map = arcpy.mapping.MapDocument(mxds[i])
    o_pdf = os.path.join(opath,
         os.path.basename(os.path.splitext(mxd)[0]) + ".pdf")
    print i
    print "mxd=" + map.filePath
    print "setfile=" + settings
    print "start"
    arcpyproduction.mapping.ExportToProductionPDF(map, o_pdf ,settings)
    print "done" + o_pdf

# Check in extension
arcpy.CheckInExtension('foundation')

Related Topics

6/8/2015