Click or drag to resize

ImagePrintDocument Class

Derives from PrintDocument and allows AtalaImage objects to be printed directly to a printer.
Inheritance Hierarchy
SystemObject
  SystemMarshalByRefObject
    System.ComponentModelComponent
      System.Drawing.PrintingPrintDocument
        Atalasoft.Imaging.WinControlsImagePrintDocument
          Atalasoft.Annotate.UIAnnotatePrintDocument

Namespace:  Atalasoft.Imaging.WinControls
Assembly:  Atalasoft.dotImage.WinControls (in Atalasoft.dotImage.WinControls.dll) Version: 11.4.0.9.0.377 (.NET 4.5.2, x86)
Syntax
public class ImagePrintDocument : PrintDocument

The ImagePrintDocument type exposes the following members.

Constructors
  NameDescription
Public methodImagePrintDocument
Initializes a new instance of ImagePrintDocument.
Public methodImagePrintDocument(AtalaImage)
Initializes a new instance of ImagePrintDocument specifying an image to print.
Public methodImagePrintDocument(AtalaImage)
Initializes a new instance of ImagePrintDocument specifying an array of images to print on multiple pages.
Public methodImagePrintDocument(ImageCollection)
Initializes a new instance of ImagePrintDocument specifying the image to print.
Public methodImagePrintDocument(Boolean, PrintScaleMode, AtalaImage)
Initializes a new instance of ImagePrintDocument specifying the ImageCollection to print and the center and scalemode settings.
Public methodImagePrintDocument(Boolean, PrintScaleMode, AtalaImage)
Initializes a new instance of ImagePrintDocument specifying an array of images to print and the center and scale mode settings.
Public methodImagePrintDocument(Boolean, PrintScaleMode, ImageCollection)
Initializes a new instance of ImagePrintDocument specifying the ImageCollection to print and the center and fit to page settings.
Public methodImagePrintDocument(Boolean, Boolean, AtalaImage) Obsolete.
Initializes a new instance of ImagePrintDocument specifying the image to print and the center and fit to page settings.
Public methodImagePrintDocument(Boolean, Boolean, AtalaImage) Obsolete.
Initializes a new instance of ImagePrintDocument specifying an array of images to print and the center and fit to page settings.
Public methodImagePrintDocument(Boolean, Boolean, ImageCollection) Obsolete.
Initializes a new instance of ImagePrintDocument specifying the ImageCollection to print and the center and fit to page settings.
Top
Properties
  NameDescription
Protected propertyCanRaiseEvents
Gets a value indicating whether the component can raise an event.
(Inherited from Component.)
Public propertyCenter
Gets or sets a value indicating if the image is centered onto the page.
Public propertyContainer
Gets the IContainer that contains the Component.
(Inherited from Component.)
Public propertyDefaultPageSettings
Gets or sets page settings that are used as defaults for all pages to be printed.
(Inherited from PrintDocument.)
Protected propertyDesignMode
Gets a value that indicates whether the Component is currently in design mode.
(Inherited from Component.)
Public propertyDocumentName
Gets or sets the document name to display (for example, in a print status dialog box or printer queue) while printing the document.
(Inherited from PrintDocument.)
Protected propertyEvents
Gets the list of event handlers that are attached to this Component.
(Inherited from Component.)
Public propertyFitToPage Obsolete.
A value indicating if the image is stretched to fit the page.
Public propertyImage
Gets or sets the AtalaImage to print.
Public propertyImages
Gets or sets the images to print.
Protected propertyImageToPrint
Gets the image that will be printed for this page.
Public propertyOriginAtMargins
Gets or sets a value indicating whether the position of a graphics object associated with a page is located just inside the user-specified margins or at the top-left corner of the printable area of the page.
(Inherited from PrintDocument.)
Public propertyPrintController
Gets or sets the print controller that guides the printing process.
(Inherited from PrintDocument.)
Public propertyPrinterSettings
Gets or sets the printer that prints the document.
(Inherited from PrintDocument.)
Public propertyScaleMode
Gets or sets the scale mode used when printing an image.
Public propertySite
Gets or sets the ISite of the Component.
(Inherited from Component.)
Top
Methods
  NameDescription
Public methodCreateObjRef
Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.
(Inherited from MarshalByRefObject.)
Public methodDispose
Releases all resources used by the Component.
(Inherited from Component.)
Protected methodDispose(Boolean)
Releases the unmanaged resources used by the Component and optionally releases the managed resources.
(Inherited from Component.)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Releases unmanaged resources and performs other cleanup operations before the Component is reclaimed by garbage collection.
(Inherited from Component.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetLifetimeService
Retrieves the current lifetime service object that controls the lifetime policy for this instance.
(Inherited from MarshalByRefObject.)
Protected methodGetService
Returns an object that represents a service provided by the Component or by its Container.
(Inherited from Component.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInitializeLifetimeService
Obtains a lifetime service object to control the lifetime policy for this instance.
(Inherited from MarshalByRefObject.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodMemberwiseClone(Boolean)
Creates a shallow copy of the current MarshalByRefObject object.
(Inherited from MarshalByRefObject.)
Protected methodOnAfterPrintPage
Called after the OnPrintPage(PrintPageEventArgs) method.
Protected methodOnBeginPrint
Call before printing begins.
(Overrides PrintDocumentOnBeginPrint(PrintEventArgs).)
Protected methodOnEndPrint
Raises the EndPrint event. It is called when the last page of the document has printed.
(Inherited from PrintDocument.)
Protected methodOnGetImage
Raises the GetImage event to obtain the image to print.
Protected methodOnPrintImage
Called to send the image to the printer and raises the PrintImage event.
Protected methodOnPrintPage
Called for each page being printed.
(Overrides PrintDocumentOnPrintPage(PrintPageEventArgs).)
Protected methodOnQueryPageSettings
Raises the QueryPageSettings event. It is called immediately before each PrintPage event.
(Inherited from PrintDocument.)
Public methodPrint
Starts the document's printing process.
(Inherited from PrintDocument.)
Public methodSetImagesFromImageCollection
Sets the Images in this ImagePrintDocument to an ImageCollection in a Workspace or WorkspaceViewer.
Public methodToString
Provides information about the print document, in string form.
(Inherited from PrintDocument.)
Top
Events
  NameDescription
Public eventAfterPrintPage
Occurs after image is prepared to print.
Public eventBeginPrint
Occurs when the Print method is called and before the first page of the document prints.
(Inherited from PrintDocument.)
Public eventDisposed
Occurs when the component is disposed by a call to the Dispose method.
(Inherited from Component.)
Public eventEndPrint
Occurs when the last page of the document has printed.
(Inherited from PrintDocument.)
Public eventCode exampleGetImage
Occurs when the print job requires the next image to print.
Public eventPrintImage
Occurs just before the image is printed.
Public eventPrintPage
Occurs when the output to print for the current page is needed.
(Inherited from PrintDocument.)
Public eventQueryPageSettings
Occurs immediately before each PrintPage event.
(Inherited from PrintDocument.)
Top
Remarks

The .NET Framework contains the PrintDialog, PrintPreviewDialog, PrintPreviewControl, and PageSetupDialog giving you fine control over printer settings and showing a preview of the output. Each of these uses a PrintDocument. The ImagePrintDocument extends the PrintDocument so that you can take advantage of this functionality when printing images in DotImage.

Multiple images can be printed by setting the Images array property, or by handling the GetImage event and setting the HasMorePages property of the PrintPageEventArgs to true.

Examples

This example requires you have a placed an ImagePrintDocument onto your form. It demonstrates printing one image to the printer, and scaling it to fit the page.

Printing an Image (C#)
myImagePrintDocument.Image = myImageViewer.Image;
myImagePrintDocument.ScaleMode = PrintScaleMode.FitToMargins;
myImagePrintDocument.Print();
Printing an Image (Visual Basic)
myImagePrintDocument.Image = myImageViewer.Image
myImagePrintDocument.ScaleMode = PrintScaleMode.FitToMargins
myImagePrintDocument.Print()

This example demonstrates how to print all images in a WorkspaceViewer to the printer while letting the user specify page and printer settings. By handling the PrintPage and AfterPrintPage events, it also demonstrates how to customize individual pages that are printed. This example uses a WorkspaceViewer, ImagePrintDocument, PageSetupDialog, and PrintDialog in a WinForms application. The Document Property in the PageSetupDialog and PrintDialog must be set to the ImagePrintDocument.

Custom Print Job (C#)
private void imagePrintDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    //allows the user to customize page fitting for each page that's printed
    if (MessageBox.Show(this, "Do you wish to fit this image to the page?", "Specify Page Fitting", MessageBoxButtons.YesNo) == DialogResult.Yes)
        imagePrintDocument1.ScaleMode = PrintScaleMode.FitToMargins;
    else
        imagePrintDocument1.ScaleMode = PrintScaleMode.None;
}

private void imagePrintDocument1_AfterPrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    //draws a watermark on the page
    e.Graphics.DrawString("This is a test watermark.", new Font("Arial", 18), new SolidBrush(Color.Black), 0, 0);
}

private void btnPrintImage_Click(object sender, System.EventArgs e)
{
    //lets the user set the printer options
    if (printDialog1.ShowDialog(this) == DialogResult.OK)
    {
        //set all images from the image collection
        imagePrintDocument1.SetImagesFromImageCollection(workspaceViewer1.Images);
        imagePrintDocument1.Print();
    }
}

private void btnPageSetup_Click(object sender, System.EventArgs e)
{
    //lets the user modify the page settings such as margins
    pageSetupDialog1.ShowDialog(this);
}
Custom Print Job (Visual Basic)
Private  Sub imagePrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles imagePrintDocument1.PrintPage
    'allows the user to customize page fitting for each page that's printed
    If MessageBox.Show(this,"Do you wish to fit this image to the page?","Specify Page Fitting",MessageBoxButtons.YesNo) = DialogResult.Yes Then
        imagePrintDocument1.ScaleMode = PrintScaleMode.FitToMargins
    Else 
        imagePrintDocument1.ScaleMode = PrintScaleMode.None
    End If
End Sub

Private  Sub imagePrintDocument1_AfterPrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles imagePrintDocument1.AfterPrintPage
    'draws a watermark on the page
    e.Graphics.DrawString("This is a test watermark.", New Font("Arial", 18), New SolidBrush(Color.Black), 0, 0)
End Sub

Private  Sub btnPrintImage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrintImage.Click
    'lets the user set the printer options
    If printDialog1.ShowDialog(Me) = DialogResult.OK Then
        'set all images from the image collection
        imagePrintDocument1.SetImagesFromImageCollection(workspaceViewer1.Images)
        imagePrintDocument1.Print()
    End If
End Sub

Private  Sub btnPageSetup_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPageSetup.Click
    'lets the user modify the page settings such as margins
    pageSetupDialog1.ShowDialog(Me)
End Sub
See Also