Ejemplo n.º 1
0
 /// <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)
 {
     initWriter();
 }
Ejemplo n.º 2
0
        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();
            }
            _bodyDataSource.ApplyPropertyDataAnnotations(this._originalPdfColumnsDefinitions, 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);
        }
Ejemplo n.º 3
0
        /// <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();
        }
Ejemplo n.º 4
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;
        }
Ejemplo n.º 5
0
        /// <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);

            return notRotatedPageSize;
        }
Ejemplo n.º 6
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
     };
 }
Ejemplo n.º 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;
 }