diff --git a/packages/x-data-grid/src/hooks/features/export/useGridPrintExport.tsx b/packages/x-data-grid/src/hooks/features/export/useGridPrintExport.tsx index 5ba08b587cdc..3421133554eb 100644 --- a/packages/x-data-grid/src/hooks/features/export/useGridPrintExport.tsx +++ b/packages/x-data-grid/src/hooks/features/export/useGridPrintExport.tsx @@ -177,15 +177,18 @@ export const useGridPrintExport = ( // The height above does not include grid border width, so we need to exclude it gridClone.style.boxSizing = 'content-box'; - // the footer is always being placed at the bottom of the page as if all rows are exported - // so if getRowsToExport is being used to only export a subset of rows then we need to - // adjust the footer position to be correctly placed at the bottom of the grid - const gridFooterElement: HTMLElement | null = gridClone.querySelector( - `.${gridClasses.footerContainer}`, - ); - gridFooterElement!.style.position = 'absolute'; - gridFooterElement!.style.width = '100%'; - gridFooterElement!.style.top = `${computedTotalHeight - gridFooterElementHeight}px`; + if (!normalizeOptions.hideFooter) { + // the footer is always being placed at the bottom of the page as if all rows are exported + // so if getRowsToExport is being used to only export a subset of rows then we need to + // adjust the footer position to be correctly placed at the bottom of the grid + const gridFooterElement: HTMLElement | null = gridClone.querySelector( + `.${gridClasses.footerContainer}`, + )!; + + gridFooterElement.style.position = 'absolute'; + gridFooterElement.style.width = '100%'; + gridFooterElement.style.top = `${computedTotalHeight - gridFooterElementHeight}px`; + } // printDoc.body.appendChild(gridClone); should be enough but a clone isolation bug in Safari // prevents us to do it