Example #1
0
        /// <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);
        }
Example #5
0
 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();
 }
Example #7
0
 /// <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;
 }