"winforms reportviewer.print report" Code Answer's

You're definitely familiar with the best coding language C# that developers use to develop their projects and they get all their queries like "winforms reportviewer.print report" answered properly. Developers are finding an appropriate answer about winforms reportviewer.print report related to the C# coding language. By visiting this online portal developers get answers concerning C# codes question like winforms reportviewer.print report. Enter your desired code related query in the search bar and get every piece of information about C# code related question on winforms reportviewer.print report. 

winforms reportviewer.print report

By Doubtful DragonflyDoubtful Dragonfly on Jan 31, 2021
this.reportViewer1.LocalReport.Print();

Source: stackoverflow.com

Add Comment

0

winforms reportviewer.print report

By Doubtful DragonflyDoubtful Dragonfly on Jan 31, 2021
using Microsoft.Reporting.WinForms;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Printing;
using System.IO;

public static class LocalReportExtensions
{
    public static void Print(this LocalReport report)
    {
        var pageSettings = new PageSettings();
        pageSettings.PaperSize = report.GetDefaultPageSettings().PaperSize;
        pageSettings.Landscape = report.GetDefaultPageSettings().IsLandscape;
        pageSettings.Margins = report.GetDefaultPageSettings().Margins;
        Print(report, pageSettings);
    }

    public static void Print(this LocalReport report, PageSettings pageSettings)
    {
        string deviceInfo =
            $@"<DeviceInfo>
                <OutputFormat>EMF</OutputFormat>
                <PageWidth>{pageSettings.PaperSize.Width * 100}in</PageWidth>
                <PageHeight>{pageSettings.PaperSize.Height * 100}in</PageHeight>
                <MarginTop>{pageSettings.Margins.Top * 100}in</MarginTop>
                <MarginLeft>{pageSettings.Margins.Left * 100}in</MarginLeft>
                <MarginRight>{pageSettings.Margins.Right * 100}in</MarginRight>
                <MarginBottom>{pageSettings.Margins.Bottom * 100}in</MarginBottom>
            </DeviceInfo>";

        Warning[] warnings;
        var streams = new List<Stream>();
        var currentPageIndex = 0;

        report.Render("Image", deviceInfo, 
            (name, fileNameExtension, encoding, mimeType, willSeek) => 
            {
                var stream = new MemoryStream();
                streams.Add(stream);
                return stream;
            }, out warnings);

        foreach (Stream stream in streams)
            stream.Position = 0;

        if (streams == null || streams.Count == 0)
            throw new Exception("Error: no stream to print.");

        var printDocument = new PrintDocument();
        printDocument.DefaultPageSettings = pageSettings;
        if (!printDocument.PrinterSettings.IsValid)
            throw new Exception("Error: cannot find the default printer.");
        else
        {
            printDocument.PrintPage += (sender, e) =>
            {
                Metafile pageImage = new Metafile(streams[currentPageIndex]);
                Rectangle adjustedRect = new Rectangle(
                    e.PageBounds.Left - (int)e.PageSettings.HardMarginX,
                    e.PageBounds.Top - (int)e.PageSettings.HardMarginY,
                    e.PageBounds.Width,
                    e.PageBounds.Height);
                e.Graphics.FillRectangle(Brushes.White, adjustedRect);
                e.Graphics.DrawImage(pageImage, adjustedRect);
                currentPageIndex++;
                e.HasMorePages = (currentPageIndex < streams.Count);
                e.Graphics.DrawRectangle(Pens.Red, adjustedRect);
            };
            printDocument.EndPrint += (Sender, e) =>
            {
                if (streams != null)
                {
                    foreach (Stream stream in streams)
                        stream.Close();
                    streams = null;
                }
            };
            printDocument.Print();
        }
    }
}

Source: stackoverflow.com

Add Comment

0

All those coders who are working on the C# based application and are stuck on winforms reportviewer.print report can get a collection of related answers to their query. Programmers need to enter their query on winforms reportviewer.print report related to C# code and they'll get their ambiguities clear immediately. On our webpage, there are tutorials about winforms reportviewer.print report for the programmers working on C# code while coding their module. Coders are also allowed to rectify already present answers of winforms reportviewer.print report while working on the C# language code. Developers can add up suggestions if they deem fit any other answer relating to "winforms reportviewer.print report". Visit this developer's friendly online web community, CodeProZone, and get your queries like winforms reportviewer.print report resolved professionally and stay updated to the latest C# updates. 

C# answers related to "winforms reportviewer.print report"

View All C# queries

C# queries related to "winforms reportviewer.print report"

Browse Other Code Languages

CodeProZone