/// <summary> /// To add manual AddSummaryRows, we need to create a clone of the MainTable's structure. /// </summary> /// <param name="pageSetup">Document settings</param> /// <param name="pdfColumnsDefinitions">List of the PdfColumnAttributes</param> /// <returns>A PdfGrid</returns> public static PdfGrid CloneMainTableStructure(DocumentPreferences pageSetup, IList <ColumnAttributes> pdfColumnsDefinitions) { if (pageSetup.GroupsPreferences == null || pageSetup.GroupsPreferences.GroupType == GroupType.HideGroupingColumns) { pdfColumnsDefinitions = pdfColumnsDefinitions.Where(x => x.IsVisible && !x.IncludeInGrouping).OrderBy(x => x.Order).ToList(); } if (pageSetup.GroupsPreferences != null && pageSetup.GroupsPreferences.GroupType == GroupType.IncludeGroupingColumns) { pdfColumnsDefinitions = pdfColumnsDefinitions.Where(x => x.IsVisible || x.IncludeInGrouping).OrderBy(x => x.Order).ToList(); } var widths = pageSetup.PagePreferences.RunDirection == PdfRunDirection.LeftToRight ? pdfColumnsDefinitions.OrderBy(x => x.Order).Select(x => x.Width).ToArray() : pdfColumnsDefinitions.OrderBy(x => x.Order).Select(x => x.Width).Reverse().ToArray(); if (pageSetup.PagePreferences.RunDirection == null) { pageSetup.PagePreferences.RunDirection = PdfRunDirection.LeftToRight; } var mainTable = new PdfGrid(widths.Length) { RunDirection = (int)pageSetup.PagePreferences.RunDirection, WidthPercentage = pageSetup.MainTablePreferences.WidthPercentage, SplitLate = pageSetup.MainTablePreferences.SplitLate, SpacingAfter = pageSetup.MainTablePreferences.SpacingAfter, SpacingBefore = pageSetup.MainTablePreferences.SpacingBefore, KeepTogether = pageSetup.MainTablePreferences.KeepTogether, SplitRows = pageSetup.MainTablePreferences.SplitRows }; switch (pageSetup.MainTablePreferences.ColumnsWidthsType) { case TableColumnWidthType.Relative: if (pageSetup.MainTablePreferences.TableType == TableType.NormalTable) { mainTable.SetWidths(widths); } break; case TableColumnWidthType.Absolute: if (pageSetup.MainTablePreferences.TableType == TableType.NormalTable) { mainTable.SetTotalWidth(widths); } break; case TableColumnWidthType.FitToContent: break; case TableColumnWidthType.EquallySized: break; } return(mainTable); }
/// <summary> /// Sets the PageSize and its background color. /// </summary> /// <returns>PageSize info</returns> public static Rectangle GetPageSizeAndColor(DocumentPreferences pageSetup) { var originalPageSize = pageSetup.PagePreferences.Orientation == PageOrientation.Landscape ? pageSetup.PagePreferences.Size.Rotate() : pageSetup.PagePreferences.Size; var notRotatedPageSize = new Rectangle(originalPageSize.Left, originalPageSize.Bottom, originalPageSize.Width, originalPageSize.Height); if (pageSetup.PagePreferences.PagesBackgroundColor != null) { notRotatedPageSize.BackgroundColor = new BaseColor(pageSetup.PagePreferences.PagesBackgroundColor.Value.ToArgb()); } return(notRotatedPageSize); }
/// <summary> /// Fires when the document is opened. /// </summary> /// <param name="pdfColumnsAttributes">Sets columns definitions of the current report at startup</param> /// <param name="documentPreferences">Document settings.</param> public void DocumentOpened(IList <ColumnAttributes> pdfColumnsAttributes, DocumentPreferences documentPreferences) { _columns = pdfColumnsAttributes; _documentPreferences = documentPreferences; if (string.IsNullOrEmpty(WorksheetName)) { throw new InvalidOperationException("Please set the WorksheetName."); } _worksheet = _package.Workbook.Worksheets.Add(WorksheetName); initSettings(); printHeader(); }
private void setColumnsVisibility() { _pageSetup = PdfRptData.DocumentPreferences; _originalPdfColumnsDefinitions = PdfRptData.PdfColumnsAttributes; bool areColumnsAdHoc = false; if (_originalPdfColumnsDefinitions == null || !_originalPdfColumnsDefinitions.Any()) { areColumnsAdHoc = true; _originalPdfColumnsDefinitions = new AdHocPdfColumnDefinitions(_bodyDataSource, _conventions).CreatePdfColumnDefinitions(); } var visibleColumns = _conventions?.VisibleColumnNames; _bodyDataSource.ApplyPropertyDataAnnotations(this._originalPdfColumnsDefinitions, visibleColumns, areColumnsAdHoc); if (_pageSetup.GroupsPreferences == null || _pageSetup.GroupsPreferences.GroupType == GroupType.HideGroupingColumns) { _pdfColumnsDefinitions = _originalPdfColumnsDefinitions.Where(x => x.IsVisible && !x.IncludeInGrouping) .OrderBy(x => x.Order) .ToList(); } if (_pageSetup.GroupsPreferences != null && _pageSetup.GroupsPreferences.GroupType == GroupType.IncludeGroupingColumns) { _pdfColumnsDefinitions = _originalPdfColumnsDefinitions.Where(x => x.IsVisible || x.IncludeInGrouping) .OrderBy(x => x.Order) .ToList(); } if (_pageSetup.MainTablePreferences.TableType == TableType.HorizontalStackPanel) { var columnsCount = _pageSetup.MainTablePreferences.HorizontalStackPanelPreferences.ColumnsPerRow; var tempColumnsDefinitions = _pdfColumnsDefinitions.Where(x => !x.IsRowNumber).ToList(); while (_pdfColumnsDefinitions.Count < columnsCount) { _pdfColumnsDefinitions.AddRange(tempColumnsDefinitions); } _pdfColumnsDefinitions = _pdfColumnsDefinitions.Take(columnsCount).ToList(); } _groupByProperties = _originalPdfColumnsDefinitions.Where(x => x.IncludeInGrouping) .Select(x => x.PropertyName) .ToList(); _isGroupingEnabled = _originalPdfColumnsDefinitions.Any(x => x.IncludeInGrouping); }
private void setDefaultDocumentPreferences() { _documentPreferences = new DocumentPreferences { PagePreferences = new PagePreferences { Margins = _margins, RunDirection = _runDirection.HasValue ? _runDirection.Value : PdfRunDirection.LeftToRight, Size = _pageSize ?? PageSize.A4, Orientation = _orientation, BackgroundImageFilePath = _backgroundImageFilePath, PagesBackgroundColor = _pagesBackgroundColor, CacheHeader = _cacheHeader, BackgroundImagePosition = _backgroundImagePosition }, ViewerPreferences = _pdfRptViewerPreferences, MainTablePreferences = new MainTablePreferences { WidthPercentage = 100, ShowHeaderRow = _showHeaderRow, ColumnsWidthsType = _columnsWidthsType.HasValue ? _columnsWidthsType.Value : TableColumnWidthType.FitToContent, NumberOfDataRowsPerPage = _numberOfDataRowsPerPage, SplitLate = _splitLate, SplitRows = _splitRows, KeepTogether = _keepTogether, SpacingBefore = _spacingBefore, SpacingAfter = _spacingAfter, TableType = _tableType, HorizontalStackPanelPreferences = _horizontalStackPanelPreferences }, DocumentMetadata = _metaData, ExportSettings = CustomExportSettings, MultipleColumnsPerPage = _multipleColumnsPerPage, DiagonalWatermark = _diagonalWatermark, GroupsPreferences = _groupsPreferences, CompressionSettings = _pdfRptCompression, ConformanceLevel = _conformanceLevel, PrintingPreferences = _printingPreferences, FileAttachments = FileAttachments }; }
/// <summary> /// Fires when the document is opened. /// </summary> /// <param name="pdfColumnsAttributes">Sets columns definitions of the current report at startup</param> /// <param name="documentPreferences">Document settings.</param> public void DocumentOpened(IList <ColumnAttributes> pdfColumnsAttributes, DocumentPreferences documentPreferences) { _pdfColumnsAttributes = pdfColumnsAttributes; initWriter(); }
/// <summary> /// Sets Document's settings. /// It can be null. In this case some common default settings will be applied. /// </summary> /// <param name="documentPreferences">Document's settings</param> public void SetDocumentPreferences(DocumentPreferences documentPreferences) { _documentPreferences = documentPreferences; }