DxGrid.ExportToPdfAsync(Stream, GridPdfExportOptions) Method
Exports Grid data in PDF to the specified stream.
Namespace: DevExpress.Blazor
Assembly: DevExpress.Blazor.v25.1.dll
NuGet Package: DevExpress.Blazor
Declaration
public Task ExportToPdfAsync(
Stream stream,
GridPdfExportOptions options = null
)
Parameters
Name | Type | Description |
---|---|---|
stream | Stream | The target stream for Grid data export. |
Optional Parameters
Name | Type | Default | Description |
---|---|---|---|
options | GridPdfExportOptions | null | PDF export options. |
Returns
Type | Description |
---|---|
Task | The task that is completed when the file is exported. |
Remarks
Call the ExportToPdfAsync
method to export Grid data to PDF. Method overloads allow you to write the result to a stream (the current overload) or to a file downloaded onto a client machine (ExportToPdfAsync(String, GridPdfExportOptions)).
The method accepts a GridPdfExportOptions object as a parameter. Use this parameter to configure export settings.
Example
The following example exports selected rows to PDF and customizes the output document’s appearance:
@rendermode InteractiveServer
@using DevExpress.Drawing;
@inject WeatherForecastService ForecastService
<DxGrid @ref="Grid" Data="@forecasts">
<Columns>
<DxGridSelectionColumn Width="60px" AllowSelectAll="true" />
<DxGridDataColumn Caption="Date" FieldName="Date" />
<DxGridDataColumn Caption="Temperature (C)" FieldName="TemperatureC" />
<DxGridDataColumn Caption="Temperature (F)" FieldName="TemperatureF" />
<DxGridDataColumn Caption="Summary" FieldName="Summary" />
</Columns>
<ToolbarTemplate>
<DxToolbar>
<DxToolbarItem Text="Export to PDF" Click="ExportPdf_Click" BeginGroup="true" />
</DxToolbar>
</ToolbarTemplate>
</DxGrid>
@code {
IGrid Grid;
private WeatherForecast[]? forecasts;
protected override async Task OnInitializedAsync() {
forecasts = await ForecastService.GetForecastAsync(DateOnly.FromDateTime(DateTime.Now));
}
async Task ExportPdf_Click() {
var myStream = new System.IO.MemoryStream();
await Grid.ExportToPdfAsync(myStream, new GridPdfExportOptions() {
ExportSelectedRowsOnly = true, // Exports only selected rows
CustomizeCell = OnCustomizeCell, // Customizes table cell appearance
CustomizeDocument = OnCustomizeDocument, // Customizes overall document appearance
CustomizeDocumentHeader = OnCustomizeDocumentHeader, // Adds and customizes a document header
});
// Process myStream here
}
void OnCustomizeDocument(GridDocumentExportCustomizeDocumentEventArgs args) {
// Sets default font settings for all elements
args.DefaultElementStyle.Font = new DXFont("Times New Roman", 12, DXFontStyle.Regular);
// Switches the page orientation to landscape
args.Landscape = true;
}
void OnCustomizeCell(GridDocumentExportCustomizeCellEventArgs args) {
// Sets border settings for all table cells
args.ElementStyle.BorderColor = System.Drawing.Color.DarkGray;
args.ElementStyle.BorderDashStyle = DevExpress.XtraPrinting.BorderDashStyle.Dash;
// Sets style settings for header cells
if (args.AreaType == DocumentExportAreaType.Header) {
args.ElementStyle.BackColor = System.Drawing.Color.LightGray;
args.ElementStyle.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
args.ElementStyle.Font = new DXFont("Arial", 12, DXFontStyle.Bold);
}
args.Handled = true;
}
void OnCustomizeDocumentHeader(GridDocumentExportCustomizeDocumentHeaderFooterEventArgs args) {
// Adds a document header
args.Text = "Weather Forecast";
// Sets header style settings
args.ElementStyle.Font = new DXFont("Arial", 12, DXFontStyle.Regular);
args.ElementStyle.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
}
}
Limitations and Specifics
- Template content is not exported (including detail Grids).
- CSS classes applied to the Grid and its elements do not affect the exported document’s appearance. Handle the CustomizeCell event to customize the output table.
- The Grid does not export columns whose Visible property is set to
false
. Handle the CustomizeColumn event to add hidden columns to the output file. - The Grid exports all data rows that match the current filter criteria (including rows in collapsed groups). Handle the RowExporting event to exclude specific rows from export.
- When the Grid is bound to a GridDevExtremeDataSource, you must specify the KeyFieldName property to export only selected rows.