Image Property (original) (raw)

Summary

The image used for creating a PDF document page with the image and text overlay feature.

Syntax

C#

Objective-C

C++/CLI

Python

@property (nonatomic, strong) LTRasterImage *image; 

Property Value

A RasterImage that contains the optional raster image to use to create a PDF page with the image/text overlay feature. If this feature is not used, this property must be set to null (Nothing in VB).

Example

using Leadtools; using Leadtools.Codecs; using Leadtools.Document.Writer; using Leadtools.Ocr; public void DocumentEmfPageExample() { // Output PDF file name var pdfFileName = Path.Combine(LEAD_VARS.ImagesDir, "Example.pdf"); // Document properties, each page is 8.5 by 11 inches at 300 DPI. Typical dimensions var resolution = 300; var pageWidth = (int)(8.5 * resolution); var pageHeight = (int)(11 * resolution); // Create the document writer var docWriter = new DocumentWriter(); docWriter.BeginDocument(pdfFileName, DocumentFormat.Pdf); for (var pageNumber = 1; pageNumber <= 2; pageNumber++) { var page = new DocumentWriterEmfPage(); page.EmfHandle = GetPageEmf(pageNumber, pageWidth, pageHeight, resolution); docWriter.AddPage(page); if (page.EmfHandle != IntPtr.Zero) DeleteEnhMetaFile(page.EmfHandle); } docWriter.EndDocument(); // To show the PDF file // System.Diagnostics.Process.Start(pdfFileName); } private static IntPtr GetPageEmf(int pageNumber, int pageWidth, int pageHeight, int resolution) { // Get the screen DC using (var graphicsScreen = Graphics.FromHwndInternal(IntPtr.Zero)) { var hdcScreen = graphicsScreen.GetHdc(); // Calculate the EMF rectangle in 1/100 mm var frameRect = new RectangleF( 0, 0, ((float)pageWidth * 2540 + resolution / 2) / resolution, ((float)pageHeight * 2540 + resolution / 2) / resolution); // Create the EMF, GDI compatible using (var metaFile = new Metafile(hdcScreen, frameRect, MetafileFrameUnit.GdiCompatible, EmfType.EmfOnly, null)) { // No need for this anymore graphicsScreen.ReleaseHdc(hdcScreen); // Now create the graphics to draw in from the metafile using (var graphics = Graphics.FromImage(metaFile)) { // Get the EMF DPI MetafileHeader header = metaFile.GetMetafileHeader(); var emfDpiX = header.DpiX; var emfDpiY = header.DpiY; // We must convert each value we want from pixels to EMF coordinates, so use a scale graphics.ScaleTransform(emfDpiX / resolution, emfDpiY / resolution); // To draw font, we must use this scale value to convert from point size var fontScale = (float)resolution / Math.Max(graphics.DpiX, graphics.DpiY); // Ready, now we can draw... // Fill it with white var rc = new RectangleF(0, 0, pageWidth, pageHeight); graphics.FillRectangle(Brushes.White, rc); // Put a frame rc = new RectangleF(1, 1, pageWidth - 2, pageHeight - 2); graphics.DrawRectangle(Pens.DarkGreen, rc.X, rc.Y, rc.Width, rc.Height); // Draw some text var text = "This is page " + pageNumber.ToString(); float pointSize = 20 * fontScale; // fonts need to converted to scaled back, so ... using (var font = new Font("Arial", pointSize, FontStyle.Regular)) graphics.DrawString(text, font, Brushes.Black, 0, 0); // Add some vector objects, red line rc = new Rectangle(50, 50, pageWidth - 100, pageHeight - 100); graphics.DrawLine(Pens.Red, rc.Left, rc.Top, rc.Right, rc.Bottom); // blue rect somewhere rc = new Rectangle(100, 100, 150, 100); graphics.FillRectangle(Brushes.Blue, rc); } return metaFile.GetHenhmetafile(); } } } // GDI interop [DllImport("gdi32.dll")] private static extern int DeleteEnhMetaFile(IntPtr hemf); static class LEAD_VARS { public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; }