Supports printing of an Leadtools.RasterImage and a AnnContainer.
public class AnnPrinter : RasterImagePrinter Public Class AnnPrinterInherits Leadtools.Winforms.Leadtools.WinForms.RasterImagePrinter
public ref class AnnPrinter : public Leadtools.Winforms.Leadtools.WinForms.RasterImagePrinter The AnnPrinter class derives from Leadtools.WinForms.RasterImagePrinter to make the process of printing an AnnContainer on top of an Leadtools.RasterImage easier.
Printing using the .NET framework involves adding a handler to the System.Drawing.Printing.PrintDocument.PrintPage event. In that event handler, you set up a new instance of the AnnPrinter class, set up its properties as desired, and then call the Print(rasterimage,int32,anncontainer,printpageeventargs) method passing it the Leadtools.RasterImage to print, the image page number, the AnnContainer containing the annotation objects to be printed and the System.Drawing.Printing.PrintPageEventArgs object obtained through your System.Drawing.Printing.PrintPageEventHandler.
This example loads an image, creates annotations, and prints.
using Leadtools;using Leadtools.Annotations;using Leadtools.Codecs;using Leadtools.WinForms;using Leadtools.Drawing;RasterImage myImage;AnnContainer myContainer;private void AnnPrinter_AnnPrinter(){// load an imageRasterCodecs codecs = new RasterCodecs();string fileName = Path.Combine(LEAD_VARS.ImagesDir, "Sample1.cmp");myImage = codecs.Load(fileName);// create a new container and add a few objectsmyContainer = new AnnContainer();myContainer.Bounds = new AnnRectangle(0, 0, myImage.Width, myImage.Height);AnnLineObject lineObj = new AnnLineObject();lineObj.StartPoint = new AnnPoint(100, 100, AnnUnit.Pixel);lineObj.EndPoint = new AnnPoint(200, 300, AnnUnit.Pixel);lineObj.Pen = new AnnPen(Color.Red, new AnnLength(4, AnnUnit.Pixel));myContainer.Objects.Add(lineObj);AnnRectangleObject rectObj = new AnnRectangleObject();rectObj.Bounds = new AnnRectangle(100, 100, 100, 100, AnnUnit.Pixel);rectObj.Pen = new AnnPen(Color.Blue, new AnnLength(1, AnnUnit.Pixel));rectObj.Brush = new AnnSolidBrush(Color.Yellow);myContainer.Objects.Add(rectObj);// intitialize a new PrintDocument objectif (PrinterSettings.InstalledPrinters != null && PrinterSettings.InstalledPrinters.Count > 0){PrintDocument printDocument = new PrintDocument();printDocument.PrintPage += new PrintPageEventHandler(PrintDocument_PrintPage);printDocument.Print();}// dispose the imagemyImage.Dispose();}private void PrintDocument_PrintPage(object sender, PrintPageEventArgs e){AnnPrinter printer = new AnnPrinter();// We want normal size (not zoomed) but centeredprinter.SizeMode = RasterPaintSizeMode.Fit;printer.HorizontalAlignMode = RasterPaintAlignMode.Center;printer.VerticalAlignMode = RasterPaintAlignMode.Center;// print the whole imageprinter.ImageRectangle = Rectangle.Empty;// use maximum pageprinter.PageRectangle = RectangleF.Empty;// Win32 GDI printing and scale to grayRasterPaintProperties props = RasterPaintProperties.Default;props.PaintEngine = RasterPaintEngine.Gdi;props.PaintDisplayMode |= RasterPaintDisplayModeFlags.ScaleToGray;printer.PaintProperties = props;printer.Print(myImage, myImage.Page, myContainer, e);}static class LEAD_VARS{public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";}
Imports LeadtoolsImports Leadtools.AnnotationsImports Leadtools.CodecsImports Leadtools.WinFormsImports Leadtools.DrawingPrivate myImage As RasterImagePrivate myContainer As AnnContainerPrivate Sub AnnPrinter_AnnPrinter()' load an imageDim codecs As RasterCodecs = New RasterCodecs()myImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Sample1.cmp"))' create a new container and add a few objectsmyContainer = New AnnContainer()myContainer.Bounds = New AnnRectangle(0, 0, myImage.Width, myImage.Height)Dim lineObj As AnnLineObject = New AnnLineObject()lineObj.StartPoint = New AnnPoint(100, 100, AnnUnit.Pixel)lineObj.EndPoint = New AnnPoint(200, 300, AnnUnit.Pixel)lineObj.Pen = New AnnPen(Color.Red, New AnnLength(4, AnnUnit.Pixel))myContainer.Objects.Add(lineObj)Dim rectObj As AnnRectangleObject = New AnnRectangleObject()rectObj.Bounds = New AnnRectangle(100, 100, 100, 100, AnnUnit.Pixel)rectObj.Pen = New AnnPen(Color.Blue, New AnnLength(1, AnnUnit.Pixel))rectObj.Brush = New AnnSolidBrush(Color.Yellow)myContainer.Objects.Add(rectObj)' intitialize a new PrintDocument objectIf Not PrinterSettings.InstalledPrinters Is Nothing AndAlso PrinterSettings.InstalledPrinters.Count > 0 ThenDim printDocument As PrintDocument = New PrintDocument()AddHandler printDocument.PrintPage, AddressOf PrintDocument_PrintPageprintDocument.Print()End If' dispose the imagemyImage.Dispose()End SubPrivate Sub PrintDocument_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)Dim printer As AnnPrinter = New AnnPrinter()' We want normal size (not zoomed) but centeredprinter.SizeMode = RasterPaintSizeMode.Fitprinter.HorizontalAlignMode = RasterPaintAlignMode.Centerprinter.VerticalAlignMode = RasterPaintAlignMode.Center' print the whole imageprinter.ImageRectangle = Rectangle.Empty' use maximum pageprinter.PageRectangle = RectangleF.Empty' Win32 GDI printing and scale to grayDim props As RasterPaintProperties = RasterPaintProperties.Defaultprops.PaintEngine = RasterPaintEngine.Gdiprops.PaintDisplayMode = props.PaintDisplayMode Or RasterPaintDisplayModeFlags.ScaleToGrayprinter.PaintProperties = propsprinter.Print(myImage, myImage.Page, myContainer, e)End SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"End Class
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
