←Select platform

Image Property

Summary
The image used for creating a PDF document page with the image and text overlay feature.
Syntax
C#
Objective-C
C++/CLI
Python
public RasterImage Image { get; set; } 
@property (nonatomic, strong) LTRasterImage *image; 
public: 
property RasterImage^ Image { 
   RasterImage^ get(); 
   void set (    RasterImage^ ); 
} 
Image # get and set (DocumentWriterEmfPage) 

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).

Remarks

The Image property is optional and is used only when the document being created is PDF with the Image and Text overlay option. To create a PDF document with image/text overlay, perform the following steps:

The AnnotationContainer property is optional and is used to create annotated document. It is only valid when the document being created is PDF. Note that saving annotated document is not supported when DocumentType is PdfDocumentType.PdfA.

For more information, refer to PdfDocumentOptions.

You are responsible for freeing this Image object after the call to DocumentWriter.AddPage or DocumentWriter.InsertPage returns. This is usually done by calling RasterImage.Dispose.

Example
C#
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"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Document.Writer Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.