ImageRectangle Property

Summary

Gets or sets the rectangle that specifies the portion of the image to print.

Syntax

C#
C++/CLI
C++
public Rectangle ImageRectangle { get; set; } 
public: 
property Rectangle ImageRectangle { 
   Rectangle get(); 
   void set (    Rectangle ); 
} 
public:  
   property Rectangle^ ImageRectangle 
   { 
      Rectangle^ get() 
      void set(Rectangle^ value) 
   } 

Property Value

A System.Drawing.Rectangle that specifies the portion of the image to print.

Remarks

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.

Example

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.

C#
using Leadtools.WinForms; 
using Leadtools; 
using Leadtools.Codecs; 
 
// The image we are printing 
private RasterImage myRasterImage = null; 
 
public void RasterImagePrinterExample2() 
{ 
   // Check if there are printers installed on this machine 
   if (PrinterSettings.InstalledPrinters == null || PrinterSettings.InstalledPrinters.Count < 1) 
   { 
      MessageBox.Show("There are no printers installed on this machine"); 
      return; 
   } 
 
   // Load the image 
   using (RasterCodecs codecs = new RasterCodecs()) 
   { 
      this.myRasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif")); 
   } 
 
   // Create the print document object 
   using (PrintDocument document = new PrintDocument()) 
   { 
      // We will use the default printer with default settings 
 
      // Add handlers for Begin/Print and End print events 
      document.BeginPrint += new PrintEventHandler(printDocument_BeginPrint); 
      document.PrintPage += new PrintPageEventHandler(printDocument_PrintPage); 
      document.EndPrint += new PrintEventHandler(printDocument_EndPrint); 
 
      // Use the .NET print preview dialog 
      using (PrintPreviewDialog printPreviewDlg = new PrintPreviewDialog()) 
      { 
         printPreviewDlg.Document = document; 
         printPreviewDlg.WindowState = FormWindowState.Maximized; 
         printPreviewDlg.ShowDialog(); 
      } 
   } 
 
   // Clean up 
   this.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 object 
   PrintDocument document = sender as PrintDocument; 
 
   // Create an new LEADTOOLS image printer class 
   RasterImagePrinter printer = new RasterImagePrinter(); 
 
   // Set the document object so page calculations can be performed 
   printer.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 resolution 
   printer.UseDpi = true; 
 
   // Print the top-left corner of the image 
   printer.ImageRectangle = new Rectangle( 
      0, 
      0, 
      this.myRasterImage.ImageWidth / 2, 
      this.myRasterImage.ImageHeight / 2); 
 
   // Use the margins 
   printer.UseMargins = true; 
 
   // Calculate the real margins 
   float 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 margins 
      xMargin -= 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 margins 
   float 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 page 
   printer.Print(this.myRasterImage, 1, e); 
 
   // No more pages to print 
   e.HasMorePages = false; 
 
   // De-couple our PrintDocument from the RasterImagePrinter 
   printer.PrintDocument = null; 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 

Requirements

Target Platforms

See Also

Reference

RasterImagePrinter Class

RasterImagePrinter Members

Help Version 22.0.2023.2.9
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.WinForms Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.