Skip to main content
A newer version of this page is available. .
All docs
V21.2

Print and Export

  • 6 minutes to read

Run Demo: WPF Gantt Control - Printing

You can print and export the GanttControl. Use the GanttView.PrintArea property to specify whether to print/export the entire GanttControl, the TreeList area, or the Gantt area.

Built-in Print Preview Window

The Print Preview window allows users to print a document or export it to a PDF/Image file.

To invoke the Print Preview window, call one of the following methods:

Method Description
GanttView.ShowPrintPreview Renders the View in a document and displays it in the Print Preview window.
GanttView.ShowPrintPreviewDialog Renders the View in a document and displays it in the modal Print Preview window.
GanttView.ShowRibbonPrintPreview Renders the View in a document and displays it in the Print Preview window with the Ribbon UI.
GanttView.ShowRibbonPrintPreviewDialog Renders the View in a document and displays it in the modal Print Preview window with the Ribbon UI.

To print GanttControl data, call one of the following methods:

Method Description
GanttView.Print Invokes the standard Print dialog that allows users to print the GanttControl.
GanttView.PrintDirect Uses the default printer to print the GanttControl.

Export Data in Code

You can use the following methods to export GanttControl data in code:

Format

Method

Export Area

Export Mode

PDF

GanttView.ExportToPDF

Entire Control / TreeList Area / Gantt Area

WYSIWYG

Image

GanttView.ExportToImage

Entire Control / TreeList Area / Gantt Area

WYSIWYG

XLS

GanttView.ExportToXls

TreeList Area

Data-Aware

XLSX

GanttView.ExportToXlsx

TreeList Area

Data-Aware

CSV

GanttView.ExportToCsv

TreeList Area

Data-Aware

XPS

GanttView.ExportToXps

TreeList Area

WYSIWYG

TXT

GanttView.ExportToText

TreeList Area

WYSIWYG

DOCX

GanttView.ExportToDocx

TreeList Area

WYSIWYG

RTF

GanttView.ExportToRtf

TreeList Area

WYSIWYG

HTML

GanttView.ExportToHtml

TreeList Area

WYSIWYG

MHT

GanttView.ExportToMht

TreeList Area

WYSIWYG

WYSIWYG Export

WYSIWYG Export methods use the Printing-Exporting library to export data. An exported document retains the layout and appearance of Gantt elements. The following formats are supported:

  • PDF - the entire GanttControl or its areas (TreeList / Tasks and Timeline).
  • Image (BMP, EMF, WMF, GIF, JPEG, PNG, TIFF) - the entire GanttControl or its areas (TreeList / Tasks and Timeline).
  • XPS, TXT, DOCX, RTF, HTML, MHT - TreeList only.

<dxgn:GanttControl ItemsSource="{Binding Tasks}">
    <dxgn:GanttControl.View>
        <dxgn:GanttView PrintArea="EntireControl"
                        PrintDateRange="(10/5/2020)-(10/18/2020)"
                        x:Name="ganttView"/>
    </dxgn:GanttControl.View>
</dxgn:GanttControl>
void ExportData(object sender, System.Windows.RoutedEventArgs e) {
    ganttView.ExportToPdf(@"c:\Examples\gantt_export.pdf");
}

Data-Aware Export

Data-Aware export methods allow users to process exported data in Microsoft Excel. The GanttControl ignores the GanttView.PrintArea property value and exports its TreeList area only.

void ExportData(object sender, System.Windows.RoutedEventArgs e){
    ganttView.ExportToXlsx(@"c:\Examples\gantt_export.xlsx");
}

Printing Options

Property Description
GanttView.PrintArea Specifies whether to print the entire Gantt Area, the tree of tasks and subtasks, or the chart.
GanttView.PrintDateRange Specifies the date range for which to print tasks. Connectors for tasks outside the specified range are not printed.
GanttView.PrintGanttAreaScrollMargin Specifies the outer indents of the Gantt task area.
GanttView.PrintHeadersOnFirstPageOnly Specifies whether to print column headers only on the first page. If the GanttView.PrintArea is set to TreeList, column headers are printed on each page regardless of the PrintHeadersOnFirstPageOnly property value.
Show TreeList Area Properties
Property Description
GanttView.PrintAutoWidth Specifies whether to change the TreeList area’s width to fit the page.
GanttView.PrintBandHeaders Specifies whether to print band headers.
GanttView.PrintColumnHeaders Specifies whether to print column headers.
GanttView.PrintExpandButtons Specifies whether to print expand buttons.
GanttView.PrintNodeImages Specifies whether to print node images.
GanttView.AllowPrintColumnHeaderImage Specifies whether to print column header images.
GanttView.PrintRootIndent Specifies whether to print expand buttons.
GanttView.PrintRowIndentWidth Specifies whether to print an indent for the root node.
GanttView.PrintSelectedRowsOnly Specifies whether to print only the selected rows.
GanttView.PrintTotalSummary Specifies whether to print the Summary Panel.
GanttView.PrintFixedTotalSummary Specifies whether to print the Fixed Summary Panel.
GanttView.PrintAllNodes Specifies whether to expand all nodes in the printed document.
GanttColumn.AllowPrinting Specifies whether to display the column in the printed/exported document.

Customize Appearance

The printed GanttControl ignores regular Style and Template properties. The GanttControl‘s View has special Styles and Templates that define the printed document’s appearance.

Property Description
GanttView.PrintTaskStyle Specifies the style applied to tasks.
GanttView.PrintTaskBaselineStyle Specifies the style applied to task baselines.
GanttView.PrintSummaryTaskStyle Specifies the style applied to summary tasks.
GanttView.PrintSummaryTaskBaselineStyle Specifies the style applied to summary task baselines.
GanttView.PrintMilestoneStyle Specifies the style applied to milestones.
GanttView.PrintMilestoneBaselineStyle Specifies the style applied to milestone baselines.
GanttView.PrintConnectorStyle Specifies the style applied to connectors.
GanttView.PrintResourceStyle Specifies the style applied to resources.
GanttView.PrintGanttRowStyle Specifies the style applied to Gantt rows.
GanttView.PrintTimescaleRulerStyle Specifies the style applied to timescale rulers.
GanttView.PrintMarkedTimeIntervalsStyle Specifies the style applied to marked time intervals.
StripLineBase.PrintControlStyle Specifies the style applied to strip lines.
GanttView.PrintTaskContentTemplate, GanttView.PrintTaskContentTemplateSelector Specifies the template applied to task contents.
Show TreeList Area Styles and Templates
Property Description
GanttView.PrintBandHeaderStyle Specifies the style applied to band headers.
GanttView.PrintColumnHeaderStyle Specifies the style applied to column headers.
GanttView.PrintCellStyle Specifies the style applied to data cells.
GanttView.PrintRowIndentStyle Specifies the style applied to row indents.
GanttView.PrintTotalSummaryStyle Specifies the style applied to the Summary Panel.
GanttView.PrintFixedTotalSummaryStyle Specifies the style applied to the Fixed Summary Panel.
GanttColumn.PrintCellStyle Specifies the style applied to the column’s data cells.
GanttColumn.PrintColumnHeaderStyle Specifies the style applied to the column header.
GanttColumn.PrintTotalSummaryStyle Specifies the style applied to the column’s total summary.
GanttColumn.ActualPrintTotalSummaryStyle Returns the style applied to the column’s total summary.
GanttColumn.ActualPrintCellStyle Returns the style applied to the column’s data cells.
GanttColumn.ActualPrintColumnHeaderStyle Returns the style applied to the column header.
GanttView.PrintRowTemplate Specifies the template applied to data rows.
GanttView.PrintHeaderTemplate Specifies the template applied to column headers.
GanttView.PrintFooterTemplate Specifies the template applied to the Summary Panel.
GanttView.PrintFixedFooterTemplate Specifies the template applied to the Fixed Summary Panel.

For information on how to customize the GanttControl‘s TreeList area, refer to the Printing and Exporting topic in documentation for the DevExpress WPF Grid.

Example: Change the Printed GanttControl Appearance

<Window xmlns:dxgn="http://schemas.devexpress.com/winfx/2008/xaml/gantt"
        xmlns:dxgnn="http://schemas.devexpress.com/winfx/2008/xaml/gantt/internal">
    <Window.Resources>

        <Style x:Key="customPrintTimescaleRulerStyle" TargetType="{x:Type dxgnn:TimescaleRulerControl}">
            <Setter Property="Background" Value="White"/>
        </Style>

        <Style x:Key="customPrintMilestoneStyle" TargetType="{x:Type dxgn:GanttMilestoneControl}">
            <Setter Property="Background" Value="#0173C7"/>
        </Style>

        <Style x:Key="customPrintMilestoneBaselineStyle" TargetType="{x:Type dxgn:GanttMilestoneBaselineControl}">
            <Setter Property="Background" Value="Gray"/>
            <Setter Property="BorderThickness" Value="0"/>
            <Setter Property="Opacity" Value=".5"/>
        </Style>

        <Style x:Key="customPrintTaskBaselineStyle" TargetType="{x:Type dxgn:GanttTaskBaselineControl}">
            <Setter Property="Background" Value="Gray"/>
            <Setter Property="Opacity" Value=".5"/>
        </Style>

        <Style x:Key="customPrintSummaryTaskBaselineStyle" TargetType="{x:Type dxgn:GanttSummaryTaskBaselineControl}">
            <Setter Property="Background" Value="Gray"/>
            <Setter Property="Opacity" Value=".5"/>
        </Style>

    </Window.Resources>
    <dxgn:GanttControl ItemsSource="{Binding Tasks}" ...>
        <dxgn:GanttControl.View>
            <dxgn:GanttView PrintArea="Gantt"
                            PrintDateRange="(9/15/2020)-(9/25/2020)"
                            PrintTimescaleRulerStyle="{StaticResource customPrintTimescaleRulerStyle}"
                            PrintMilestoneStyle="{StaticResource customPrintMilestoneStyle}"
                            PrintMilestoneBaselineStyle="{StaticResource customPrintMilestoneBaselineStyle}"
                            PrintTaskBaselineStyle="{StaticResource customPrintTaskBaselineStyle}"
                            PrintSummaryTaskBaselineStyle="{StaticResource customPrintSummaryTaskBaselineStyle}"/>
        </dxgn:GanttControl.View>
        ...
    </dxgn:GanttControl>
</Window>