|
I have a windows application it contains a very long panel (nearly 5 pages) full of details. Here is my problem is when I tried to print it, only get the last section of the panel in my print preview screen. I need to get the multi page print preview. How can I get it.
Please advice
Thanks in advance, N.Nirmalan
I attach my printClass.cs file too. ------------------------------------------
using System.Drawing; using System.Drawing.Printing; using System.Windows.Forms;
namespace PanelAdd { public class PrintClass { readonly PrintDocument printdoc1 = new PrintDocument(); readonly PrintPreviewDialog previewdlg = new PrintPreviewDialog(); Bitmap MemoryImage;
private readonly Panel panel_;
public PrintClass(Panel pnl) { panel_ = pnl;
printdoc1.PrintPage += (printdoc1_PrintPage); MemoryImage = new Bitmap(pnl.Width, pnl.Height); }
private void GetPrintArea(Control pnl) { MemoryImage = new Bitmap(pnl.Width, pnl.Height); pnl.DrawToBitmap(MemoryImage, new Rectangle(0, 0, pnl.Width, pnl.Height)); }
private void printdoc1_PrintPage(object sender, PrintPageEventArgs e) { var pagearea = e.PageBounds; e.Graphics.DrawImage(MemoryImage, (pagearea.Width / 2) - (panel_.Width / 2), panel_.Location.Y); }
public void Print() { GetPrintArea(panel_); previewdlg.Document = printdoc1; previewdlg.ShowDialog(); } } }
Nirma |