Example #1
0
        protected override void OnQueryImageEvent(QueryImageEventArgs queryImageEventArgs)
        {
            base.OnQueryImageEvent(queryImageEventArgs);

            _beginNewPage        = queryImageEventArgs.BeginNewPage;
            _placeholderLocation = queryImageEventArgs.PrintPlaceholder.Location;
        }
Example #2
0
 protected virtual void OnQueryImage(QueryImageEventArgs e)
 {
     if (this.QueryImage != null)
     {
         QueryImage(this, e);
     }
 }
        protected virtual void OnQueryImageEvent(QueryImageEventArgs pQueryImageEventArgs)
        {
            if (_imageProvider != null)
            {
                pQueryImageEventArgs.HasMoreImages = !_imageProvider.IsEmpty();
            }

            _document.OnQueryImageInternal(pQueryImageEventArgs);
            _eventHasMoreImages = pQueryImageEventArgs.HasMoreImages;
        }
Example #4
0
 internal void OnQueryImageInternal(QueryImageEventArgs e)
 {
     OnQueryImage(e);
 }
        protected virtual ImagePrintItem GetNextItem(PrintPageEventArgs e)
        {
            if (!_eventHasMoreImages)
            {
                return(null);
            }

            // Getting next image & info from IImageProvider
            PrintPlaceholder imagePlaceholder;

            if (_imageProvider != null && !_imageProvider.IsEmpty())
            {
                imagePlaceholder = _imageProvider.GetNext();
            }
            else
            {
                imagePlaceholder = new PrintPlaceholder();
            }

            // Firing PrintImage event in ImagePrintDocument
            QueryImageEventArgs queryImageEventArgs = new QueryImageEventArgs();

            queryImageEventArgs.PrintPlaceholder = imagePlaceholder;
            queryImageEventArgs.PrintOptions     = _printOptions;
            OnQueryImageEvent(queryImageEventArgs);

            if (queryImageEventArgs.Cancel == true || queryImageEventArgs.PrintPlaceholder.Image == null)
            {
                e.Cancel = true;
                return(null);
            }

            int printerResolutionX, printerResolutionY;

            GetValidatedResolution(e, out printerResolutionX, out printerResolutionY);

            // If we didn't got image from IImageProvider or from user's handler
            // of PrintImage event - just return null.
            if (imagePlaceholder.Image == null)
            {
                return(null);
            }

            // Filling result ImagePrintItem
            ImagePrintItem item = new ImagePrintItem(printerResolutionX, printerResolutionY);

            item.Image             = imagePlaceholder.Image;
            item.ImageFitMode      = _printOptions.ImageFitMode;
            item.ImageAutoRotate   = _printOptions.ImageAutoRotate;
            item.InterpolationMode = _printOptions.InterpolationMode;
            item.HeaderFont        = _printOptions.HeaderFont;
            item.FooterFont        = _printOptions.FooterFont;
            item.HeaderColor       = _printOptions.HeaderColor;
            item.FooterColor       = _printOptions.FooterColor;
            item.HeaderTrimmming   = _printOptions.HeaderTrimming;
            item.FooterTrimmming   = _printOptions.FooterTrimming;
            item.HeaderAlignment   = _printOptions.HeaderAlignment;
            item.FooterAlignment   = _printOptions.FooterAlignment;

            // Header & footer
            if (_printOptions.HeaderEnabled)
            {
                item.HeaderText = imagePlaceholder.Header;
            }
            if (_printOptions.FooterEnabled)
            {
                item.FooterText = imagePlaceholder.Footer;
            }

            if (_printOptions.BorderEnabled)
            {
                int pixelWidth = PrintUtils.InchHundredthsToPixels(_printOptions.BorderWidth, printerResolutionX);
                item.BorderPen = new System.Drawing.Pen(_printOptions.BorderColor, pixelWidth);
            }

            // Setting external size. Size can be redefined in QueryImageEventHandler
            if (imagePlaceholder.Size.Width != 0 && imagePlaceholder.Size.Height != 0)
            {
                Size resizeSize = new Size();
                resizeSize.Width  = PrintUtils.InchHundredthsToPixels(imagePlaceholder.Size.Width, printerResolutionX);
                resizeSize.Height = PrintUtils.InchHundredthsToPixels(imagePlaceholder.Size.Height, printerResolutionY);

                item.SetSize(resizeSize);
            }
            else if (_printOptions.PlaceholderSize.Width != 0 && _printOptions.PlaceholderSize.Height != 0)
            {
                Size resizeSize = new Size();
                resizeSize.Width  = PrintUtils.InchHundredthsToPixels(_printOptions.PlaceholderSize.Width, printerResolutionX);
                resizeSize.Height = PrintUtils.InchHundredthsToPixels(_printOptions.PlaceholderSize.Height, printerResolutionY);

                item.SetSize(resizeSize);
            }

            return(item);
        }