LEADTOOLS Windows Forms (Leadtools.WinForms assembly)

ImageRectangle Property

Show in webframe
Example 





Gets or sets the rectangle that specifies the portion of the image to print.
Syntax
public Rectangle ImageRectangle {get; set;}
'Declaration
 
Public Property ImageRectangle As Rectangle
'Usage
 
Dim instance As RasterImagePrinter
Dim value As Rectangle
 
instance.ImageRectangle = value
 
value = instance.ImageRectangle

            

            
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
Copy Code  
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
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";
}
Requirements

Target Platforms

See Also

Reference

RasterImagePrinter Class
RasterImagePrinter Members

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.