ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / PDFFormat Class
Members Example Version

PDFFormat Class
Represents a Portable Document Format (PDF) object that can be used to export a MapView, MapFrame, or a Layout.
Syntax
public class PDFFormat : ExportFormat 
Remarks
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. PDFs are editable in many graphics applications and can retain annotation, labeling, and attribute data for map layers. PDF exports from support embedding of fonts and thus can display symbology correctly even if the user does not have Esri fonts installed.
Example
Layout_ExportPDF
  //Export a layout to PDF

  //Create a PDF export format
  PDFFormat pdf = new PDFFormat()
  {
    OutputFileName = filePath,
    Resolution = 300,
    DoCompressVectorGraphics = true,
    DoEmbedFonts = true,
    HasGeoRefInfo = true,
    ImageCompression = ImageCompression.Adaptive,
    ImageQuality = ImageQuality.Best,
    LayersAndAttributes = LayersAndAttributes.LayersAndAttributes
};

  //Check to see if the path is valid and export
  if (pdf.ValidateOutputFilePath())
  {
    await QueuedTask.Run(() => layout.Export(pdf)); //Export the PDF
  }
ExportPDF_Layout
//This example demonstrates how to export a layout to PDF.

//Added references
using ArcGIS.Desktop.Core;                         //Project
using ArcGIS.Desktop.Layouts;                      //Layout classes
using ArcGIS.Desktop.Framework.Threading.Tasks;    //QueuedTask
using ArcGIS.Desktop.Mapping;                      //Export formats

public class ExportLayoutToPDFExample
{
  public static Task ExportLayoutToPDFAsync(string LayoutName, string Path)
  {
    //Reference a layoutitem in a project by name
    LayoutProjectItem layoutItem = Project.Current.GetItems<LayoutProjectItem>().FirstOrDefault(item => item.Name.Equals(LayoutName));
    if (layoutItem == null)
      return Task.FromResult<Layout>(null);

    //Create PDF format with appropriate settings
    PDFFormat PDF = new PDFFormat();
    PDF.Resolution = 300;
    PDF.OutputFileName = Path;
    //PDF.Password = "xxx";

    return QueuedTask.Run(() =>
    {
            //Export Layout
            Layout lyt = layoutItem.GetLayout(); //Loads and returns the layout associated with a LayoutItem
            if (PDF.ValidateOutputFilePath())
      {
        lyt.Export(PDF);
      }
    });
  }
}
ExportPDF_MapFrame
//This example demonstrates how to export an individual map frame on a layout to PDF.

//Added references
using ArcGIS.Desktop.Core;                         //Project
using ArcGIS.Desktop.Layouts;                      //Layout classes
using ArcGIS.Desktop.Framework.Threading.Tasks;    //QueuedTask
using ArcGIS.Desktop.Mapping;                      //Export formats

public class ExportMapFrameToPDFExample
{
  public static Task ExportMapFrameToPDFAsync(string LayoutName, string MFName, string Path)
  {
    //Reference a layoutitem in a project by name
    LayoutProjectItem layoutItem = Project.Current.GetItems<LayoutProjectItem>().FirstOrDefault(item => item.Name.Equals(LayoutName));
    if (layoutItem == null)
      return Task.FromResult<Layout>(null);

    //Create PDF format with appropriate settings
    PDFFormat PDF = new PDFFormat();
    PDF.Resolution = 300;
    PDF.OutputFileName = Path;
    //PDF.Password = "xxx";

    return QueuedTask.Run(() =>
    {
            //Export MapFrame
            Layout lyt = layoutItem.GetLayout(); //Loads and returns the layout associated with a LayoutItem
            MapFrame mf = lyt.FindElement(MFName) as MapFrame;
      PDF.OutputFileName = Path;
      if (PDF.ValidateOutputFilePath())
      {
        mf.Export(PDF);
      }
    });
  }
}
ExportPDF_ActiveMap
//This example demonstrates how to export the active mapview to PDF.

//Added references
using ArcGIS.Desktop.Framework.Threading.Tasks;    //QueuedTask
using ArcGIS.Desktop.Mapping;                      //MapView and Export formats

public class ExportActiveMapToPDFExample
{
  public static Task ExportActiveMapToPDFAsync(string Path)
  {
    return QueuedTask.Run(() =>
    {
            //Reference the active map view
            MapView mapv = MapView.Active;

            //Create PDF format with appropriate settings
            PDFFormat PDF = new PDFFormat();
      PDF.Resolution = 300;
      PDF.Height = 500;
      PDF.Width = 800;
      PDF.OutputFileName = Path;

            //Export active map view
            if (PDF.ValidateOutputFilePath())
      {
        mapv.Export(PDF);
      }
    });
  }
}
Layout_ExportMS_PDF
//Export multiple map series pages to PDF

//Create a PDF export format
PDFFormat msPDF = new PDFFormat()
{
  Resolution = 300,
  OutputFileName = filePath,
  DoCompressVectorGraphics = true
};

//Set up the export options for the map series
MapSeriesExportOptions MSExport_custom = new MapSeriesExportOptions()
{
  ExportPages = ExportPages.Custom,
  CustomPages = "1-3, 5",
  ExportFileOptions = ExportFileOptions.ExportAsSinglePDF,
  ShowSelectedSymbology = false
};

//Check to see if the path is valid and export
if (msPDF.ValidateOutputFilePath())
{
  layout.Export(msPDF, MSExport_custom);  //Export the PDF to a single, multiple page PDF. 
}
PDF_Constructor
PDFFormat PDF = new PDFFormat();
Export a layout to PDF
//Export a single page layout to PDF.

//Create a PDF format with appropriate settings
//BMP, EMF, EPS, GIF, JPEG, PNG, SVG, TGA, and TFF formats are also available for export
PDFFormat PDF = new PDFFormat()
{
  OutputFileName = filePath,
  Resolution = 300,
  DoCompressVectorGraphics = true,
  DoEmbedFonts = true,
  HasGeoRefInfo = true,
  ImageCompression = ImageCompression.Adaptive,
  ImageQuality = ImageQuality.Best,
  LayersAndAttributes = LayersAndAttributes.LayersAndAttributes
};

//Check to see if the path is valid and export
if (PDF.ValidateOutputFilePath())
{
  await QueuedTask.Run(() => layout.Export(PDF));  //Export the layout to PDF on the worker thread
}
Export a map series to single PDF
//Export a map series with multiple pages to a single PDF.

//Create PDF format with appropriate settings
PDFFormat MS_PDF = new PDFFormat()
{
  OutputFileName = filePath,
  Resolution = 300,
  DoCompressVectorGraphics = true,
  DoEmbedFonts = true,
  HasGeoRefInfo = true,
  ImageCompression = ImageCompression.Adaptive,
  ImageQuality = ImageQuality.Best,
  LayersAndAttributes = LayersAndAttributes.LayersAndAttributes
};

//Set up map series export options
MapSeriesExportOptions MS_ExportOptions = new MapSeriesExportOptions()
{
  ExportPages = ExportPages.Custom,  //Provide a specific list of pages
  CustomPages = "1-3, 5",  //Only used if ExportPages.Custom is set
  ExportFileOptions = ExportFileOptions.ExportAsSinglePDF,  //Export all pages to a single, multi-page PDF
  ShowSelectedSymbology = false  //Do no show selection symbology in the output
};

//Export on the worker thread
await QueuedTask.Run(() =>
{
  //Check to see if the path is valid and export
  if (MS_PDF.ValidateOutputFilePath())
  {
    layout.Export(MS_PDF, MS_ExportOptions);  //Export to PDF
  }
});
Export report to pdf
//Note: Call within QueuedTask.Run()
//Define Export Options
var exportOptions = new ReportExportOptions
{
  ExportPageOption = ExportPageOptions.ExportAllPages,
  TotalPageNumberOverride = 0

};
//Create PDF format with appropriate settings
PDFFormat pdfFormat = new PDFFormat();
pdfFormat.Resolution = 300;
pdfFormat.OutputFileName = path;
report.ExportToPDF($"{report.Name}", pdfFormat, exportOptions, useSelection);
Inheritance Hierarchy

System.Object
   ArcGIS.Desktop.Mapping.ExportFormat
      ArcGIS.Desktop.Mapping.PDFFormat

Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also