Gets or sets the rectangle that specifies the portion of the image to print.
public Rectangle ImageRectangle { get; set; }
A System.Drawing.Rectangle that specifies the portion of the image to print.
This rectangle must be in image coordinates. To convert between image and device coordinates refer to Leadtools.RasterImage.RectangleFromImage(Leadtools.RasterViewPerspective,Leadtools.LeadRect) and Leadtools.RasterImage.RectangleToImage(Leadtools.RasterViewPerspective,Leadtools.LeadRect)
You can also pass Rectangle.Empty to use the whole image.
This example loads an image and then prints the top-left corner of the image to the bottom-right corner of the page. For an example on printing an image using default rectangles, refer to RasterImagePrinter.
using Leadtools.WinForms;using Leadtools;using Leadtools.Codecs;// The image we are printingprivate RasterImage myRasterImage = null;public void RasterImagePrinterExample2(){// Check if there are printers installed on this machineif (PrinterSettings.InstalledPrinters == null || PrinterSettings.InstalledPrinters.Count < 1){MessageBox.Show("There are no printers installed on this machine");return;}// Load the imageusing (RasterCodecs codecs = new RasterCodecs()){this.myRasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"));}// Create the print document objectusing (PrintDocument document = new PrintDocument()){// We will use the default printer with default settings// Add handlers for Begin/Print and End print eventsdocument.BeginPrint += new PrintEventHandler(printDocument_BeginPrint);document.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);document.EndPrint += new PrintEventHandler(printDocument_EndPrint);// Use the .NET print preview dialogusing (PrintPreviewDialog printPreviewDlg = new PrintPreviewDialog()){printPreviewDlg.Document = document;printPreviewDlg.WindowState = FormWindowState.Maximized;printPreviewDlg.ShowDialog();}}// Clean upthis.myRasterImage.Dispose();}private void printDocument_BeginPrint(object sender, PrintEventArgs e){// Reset the current page number// Since we are using the print preview dialog, this event will be called twice (once// to generate the print preview and once for actual printing). So, we must set this back// to the first print page if we are going to print more than one page}private void printDocument_EndPrint(object sender, PrintEventArgs e){// Nothing to do here}private void printDocument_PrintPage(object sender, PrintPageEventArgs e){// Get the print document objectPrintDocument document = sender as PrintDocument;// Create an new LEADTOOLS image printer classRasterImagePrinter printer = new RasterImagePrinter();// Set the document object so page calculations can be performedprinter.PrintDocument = document;// We are going to stretch the top-left corner of the image into the bottom-right corner of// the page (using the page margins)printer.SizeMode = RasterPaintSizeMode.Stretch;// Align mode will not have an effect if size mode is "Stretch"printer.HorizontalAlignMode = RasterPaintAlignMode.Near;printer.VerticalAlignMode = RasterPaintAlignMode.Near;// Account for FAX images that may have different horizontal and vertical resolutionprinter.UseDpi = true;// Print the top-left corner of the imageprinter.ImageRectangle = new Rectangle(0,0,this.myRasterImage.ImageWidth / 2,this.myRasterImage.ImageHeight / 2);// Use the marginsprinter.UseMargins = true;// Calculate the real marginsfloat xMargin = e.MarginBounds.X;float yMargin = e.MarginBounds.Y;if (!document.PrintController.IsPreview){// Real printing (Not inside a .NET PrintPreview control), get the printer hard marginsxMargin -= document.DefaultPageSettings.HardMarginX;yMargin -= document.DefaultPageSettings.HardMarginY;// If you want to use the page bounds instead of the margins, use this to calculate it// RectangleF pageBounds = e.PageBounds;// pageBounds.Width -= document.DefaultPageSettings.HardMarginX * 2;// pageBounds.Height -= document.DefaultPageSettings.HardMarginY * 2;}else{// If you want to use the page bounds instead of the margins, use this to calculate it// RectangleF pageBounds = e.PageBounds;}// Print to the bottom right corner of the page including the marginsfloat destWidth = e.MarginBounds.Width / 2;float destHeight = e.MarginBounds.Height / 2;RectangleF marginBounds = new RectangleF(xMargin + destWidth, yMargin + destHeight, destWidth, destHeight);printer.PageRectangle = marginBounds;// Print the first current pageprinter.Print(this.myRasterImage, 1, e);// No more pages to printe.HasMorePages = false;// De-couple our PrintDocument from the RasterImagePrinterprinter.PrintDocument = null;}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";}