←Select platform

ImageRectangle Property

Summary

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

Syntax

C#
VB
C++
public Rectangle ImageRectangle { get; set; } 
  
Public Property ImageRectangle As Rectangle 
public: 
property Rectangle ImageRectangle { 
   Rectangle get(); 
   void set (    Rectangle ); 
} 

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#
VB
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:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools.WinForms 
Imports Leadtools 
Imports Leadtools.Codecs 
 
' The image we are printing 
Private myRasterImage As RasterImage = Nothing 
 
Public Sub RasterImagePrinterExample2() 
   ' Check if there are printers installed on this machine 
   If (PrinterSettings.InstalledPrinters Is Nothing) OrElse (PrinterSettings.InstalledPrinters.Count < 1) Then 
      MessageBox.Show("There are no printers installed on this machine") 
      Return 
   End If 
 
   ' Load the image 
   Using codecs As New RasterCodecs() 
      Me.myRasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif")) 
   End Using 
 
   ' Create the print document object 
   Using document As New PrintDocument() 
      ' We will use the default printer with default settings 
 
      ' Add handlers for Begin/Print and End print events 
      AddHandler document.BeginPrint, AddressOf printDocument_BeginPrint 
      AddHandler document.PrintPage, AddressOf printDocument_PrintPage 
      AddHandler document.EndPrint, AddressOf printDocument_EndPrint 
 
      ' Use the .NET print preview dialog 
      Using printPreviewDlg As New PrintPreviewDialog() 
         printPreviewDlg.Document = document 
         printPreviewDlg.WindowState = FormWindowState.Maximized 
         printPreviewDlg.ShowDialog() 
      End Using 
   End Using 
 
   ' Clean up 
   Me.myRasterImage.Dispose() 
End Sub 
 
Private Sub printDocument_BeginPrint(ByVal sender As Object, ByVal e As PrintEventArgs) 
   ' 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 
End Sub 
 
Private Sub printDocument_EndPrint(ByVal sender As Object, ByVal e As PrintEventArgs) 
   ' Nothing to do here 
End Sub 
 
Private Sub printDocument_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) 
   ' Get the print document object 
   Dim document As PrintDocument = DirectCast(sender, PrintDocument) 
 
   ' Create an new LEADTOOLS image printer class 
   Dim printer As 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, 
      Me.myRasterImage.ImageWidth \ 2, 
      Me.myRasterImage.ImageHeight \ 2) 
 
   ' Use the margins 
   printer.UseMargins = True 
 
   ' Calculate the real margins 
   Dim xMargin As Single = e.MarginBounds.X 
   Dim yMargin As Single = e.MarginBounds.Y 
 
   If Not (document.PrintController.IsPreview) Then 
      ' Real printing (Not inside a .NET PrintPreview control), get the printer hard margins 
      xMargin = xMargin - document.DefaultPageSettings.HardMarginX 
      yMargin = yMargin - document.DefaultPageSettings.HardMarginY 
 
      ' If you want to use the page bounds instead of the margins, use this to calculate it 
      ' Dim pageBounds as RectangleF = e.PageBounds 
      ' pageBounds.Width = pageBounds.Width - document.DefaultPageSettings.HardMarginX * 2 
      ' pageBounds.Height = pageBounds.Height - document.DefaultPageSettings.HardMarginY * 2 
   Else 
      ' If you want to use the page bounds instead of the margins, use this to calculate it 
      ' Dim pageBounds as RectangleF = e.PageBounds 
   End If 
 
   ' Print to the bottom right corner of the page including the margins 
   Dim destWidth As Single = e.MarginBounds.Width \ 2 
   Dim destHeight As Single = e.MarginBounds.Height \ 2 
   Dim marginBounds As New RectangleF(xMargin + destWidth, yMargin + destHeight, destWidth, destHeight) 
 
   printer.PageRectangle = marginBounds 
 
   ' Print the first current page 
   printer.Print(Me.myRasterImage, 1, e) 
 
   ' No more pages to print 
   e.HasMorePages = False 
 
   ' De-couple our PrintDocument from the RasterImagePrinter 
   printer.PrintDocument = Nothing 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.WinForms Assembly