Leadtools.Codecs Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
CodecsRasterizeDocumentLoadOptions Class
See Also  Members   Example 
Leadtools.Codecs Namespace : CodecsRasterizeDocumentLoadOptions Class



Contains set the options for loading a document file as a raster image (rasterization).

Syntax

Visual Basic (Declaration) 
Public Class CodecsRasterizeDocumentLoadOptions 
Visual Basic (Usage)Copy Code
Dim instance As CodecsRasterizeDocumentLoadOptions
C# 
public class CodecsRasterizeDocumentLoadOptions 
C++/CLI 
public ref class CodecsRasterizeDocumentLoadOptions 

Example

For an example, refer to CodecsPdfOptions.

This example will load a PDF document using different rasterize document options and show its effect on the result raster image width, height and resolution.

Visual BasicCopy Code
Public Sub RasterizeDocumentExample()
   ' Unlock support for loading raster PDF files
   RasterSupport.Unlock(RasterSupportType.PdfRead, "Your key here")
   ' Initialize the RasterCodecs object to use
   RasterCodecs.Startup()
   Dim codecs As New RasterCodecs()

   ' Enable using the RasterizeDocumentOptions
   Dim rasterizeDocumentLoadOptions As CodecsRasterizeDocumentLoadOptions = codecs.Options.RasterizeDocument.Load
   rasterizeDocumentLoadOptions.Enabled = True

   ' No margins (only used with RTF and TXT files)
   rasterizeDocumentLoadOptions.LeftMargin = 0
   rasterizeDocumentLoadOptions.TopMargin = 0
   rasterizeDocumentLoadOptions.RightMargin = 0
   rasterizeDocumentLoadOptions.BottomMargin = 0

   ' The PDF file we are testing. This could be an XPS, RTF, TXT or XLS file as well
   Dim imageFileName As String = "C:\Users\Public\Documents\LEADTOOLS Images\Leadtools.pdf"

   ' Show the file information
   Using imageInfo As CodecsImageInfo = codecs.GetInformation(imageFileName, True)
      Dim documentImageInfo As CodecsDocumentImageInfo = imageInfo.Document

      ' If this is a document file, show the document information
      If documentImageInfo.IsDocumentFile Then
         Console.WriteLine("Document file")
         Console.WriteLine(" Original size is: {0} by {1} {2}", _
            documentImageInfo.PageWidth, documentImageInfo.PageHeight, documentImageInfo.Unit)

         Console.WriteLine(" Using current rasterization, load size will be: {0} by {1} pixels at {2} by {3}", _
            imageInfo.Width, imageInfo.Height, imageInfo.XResolution, imageInfo.YResolution)
      Else
         ' Regular raster image, show the image information
         Console.WriteLine("Raster file")
         Console.WriteLine(" Original size is: {0} by {1} pixels at {2} by {3}", _
            imageInfo.Width, imageInfo.Height, imageInfo.XResolution, imageInfo.YResolution)
      End If
   End Using

   ' Example 1. Load at original document size at 300 DPI
   rasterizeDocumentLoadOptions.SizeMode = CodecsRasterizeDocumentSizeMode.None
   rasterizeDocumentLoadOptions.XResolution = 300
   rasterizeDocumentLoadOptions.YResolution = 300

   Using image As RasterImage = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)
      ShowResult(codecs, image)
   End Using

   ' Example 2. Fit the document at 640 by 480 pixels at 96 DPI keeping the aspect ratio
   rasterizeDocumentLoadOptions.SizeMode = CodecsRasterizeDocumentSizeMode.Fit
   rasterizeDocumentLoadOptions.PageWidth = 640
   rasterizeDocumentLoadOptions.PageHeight = 480
   rasterizeDocumentLoadOptions.Unit = CodecsRasterizeDocumentUnit.Pixel
   rasterizeDocumentLoadOptions.XResolution = 96
   rasterizeDocumentLoadOptions.YResolution = 96

   Using image As RasterImage = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)
      ShowResult(codecs, image)
   End Using

   ' Example 3. Fit the document at 8.5 by 11 inches at 96 DPI keeping the aspect ratio
   rasterizeDocumentLoadOptions.SizeMode = CodecsRasterizeDocumentSizeMode.Fit
   rasterizeDocumentLoadOptions.PageWidth = 8.5
   rasterizeDocumentLoadOptions.PageHeight = 11
   rasterizeDocumentLoadOptions.Unit = CodecsRasterizeDocumentUnit.Inch
   rasterizeDocumentLoadOptions.XResolution = 300
   rasterizeDocumentLoadOptions.YResolution = 300

   Using image As RasterImage = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)
      ShowResult(codecs, image)
   End Using

   ' Example 4. Stretch the image to always be 4 by 4 inches at 150 DPI. Aspect ratio may differ
   rasterizeDocumentLoadOptions.SizeMode = CodecsRasterizeDocumentSizeMode.Stretch
   rasterizeDocumentLoadOptions.PageWidth = 4
   rasterizeDocumentLoadOptions.PageHeight = 4
   rasterizeDocumentLoadOptions.Unit = CodecsRasterizeDocumentUnit.Inch
   rasterizeDocumentLoadOptions.XResolution = 150
   rasterizeDocumentLoadOptions.YResolution = 150

   Using image As RasterImage = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)
      ShowResult(codecs, image)
   End Using

   codecs.Dispose()
   RasterCodecs.Shutdown()
End Sub

Private Shared Sub ShowResult(ByVal codecs As RasterCodecs, ByVal image As RasterImage)
   Dim rasterizeDocumentLoadOptions As CodecsRasterizeDocumentLoadOptions = codecs.Options.RasterizeDocument.Load

   Console.WriteLine("Showing result..")
   Console.WriteLine(" Current rasterization options:")
   Console.WriteLine(" Size mode is: {0}", rasterizeDocumentLoadOptions.SizeMode)
   Console.WriteLine(" Page size is {0} by {1} {2}", _
      rasterizeDocumentLoadOptions.PageWidth, rasterizeDocumentLoadOptions.PageHeight, rasterizeDocumentLoadOptions.Unit)
   Console.WriteLine(" Resolution is {0} by {1}", _
      rasterizeDocumentLoadOptions.XResolution, rasterizeDocumentLoadOptions.YResolution)

   Console.WriteLine(" Loaded raster image size is: {0} by {1} at {2} by {3}", _
      image.ImageWidth, image.ImageHeight, image.XResolution, image.YResolution)

   ' Code to verify our results

   ' Get the suggested page width and height in pixels
   Dim pageWidthInPixels As Double
   Dim pageHeightInPixels As Double

   Select Case rasterizeDocumentLoadOptions.Unit
      Case CodecsRasterizeDocumentUnit.Inch
         pageWidthInPixels = rasterizeDocumentLoadOptions.PageWidth * rasterizeDocumentLoadOptions.XResolution
         pageHeightInPixels = rasterizeDocumentLoadOptions.PageHeight * rasterizeDocumentLoadOptions.YResolution

      Case CodecsRasterizeDocumentUnit.Millimeter
         pageWidthInPixels = rasterizeDocumentLoadOptions.PageWidth * rasterizeDocumentLoadOptions.XResolution * 25.400000025908
         pageHeightInPixels = rasterizeDocumentLoadOptions.PageHeight * rasterizeDocumentLoadOptions.YResolution * 25.400000025908

      Case CodecsRasterizeDocumentUnit.Pixel
         pageWidthInPixels = rasterizeDocumentLoadOptions.PageWidth
         pageHeightInPixels = rasterizeDocumentLoadOptions.PageHeight
   End Select

   ' Verify
   Select Case rasterizeDocumentLoadOptions.SizeMode
      Case CodecsRasterizeDocumentSizeMode.Fit, CodecsRasterizeDocumentSizeMode.FitAlways
         ' The image width/height must not be greater than suggested page width/height
         Console.WriteLine("Image width/height must be less than or equal to page width/height")
         System.Diagnostics.Debug.Assert(image.ImageWidth <= pageWidthInPixels)
         System.Diagnostics.Debug.Assert(image.ImageHeight <= pageHeightInPixels)

      Case CodecsRasterizeDocumentSizeMode.FitWidth
         ' The image width must be equal to the suggested page width
         Console.WriteLine("Image width must be equal to page width")
         System.Diagnostics.Debug.Assert(image.ImageWidth = pageWidthInPixels)

      Case CodecsRasterizeDocumentSizeMode.Stretch
         ' The image width/height must be equal to the suggested page width/height
         Console.WriteLine("Image width/height must be equal to suggested page width/height")
         System.Diagnostics.Debug.Assert(image.ImageWidth = pageWidthInPixels)
         System.Diagnostics.Debug.Assert(image.ImageHeight = pageHeightInPixels)

      Case CodecsRasterizeDocumentSizeMode.None
         Console.WriteLine("Loading at original document page size")
         ' No checking
   End Select
End Sub
C#Copy Code
public void RasterizeDocumentExample() 

   // Unlock support for loading raster PDF files 
   RasterSupport.Unlock(RasterSupportType.PdfRead, "Your key here"); 
   // Initialize the RasterCodecs object to use 
   RasterCodecs.Startup(); 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Enable using the RasterizeDocumentOptions 
   CodecsRasterizeDocumentLoadOptions rasterizeDocumentLoadOptions = codecs.Options.RasterizeDocument.Load; 
   rasterizeDocumentLoadOptions.Enabled = true; 
 
   // No margins (only used with RTF and TXT files) 
   rasterizeDocumentLoadOptions.LeftMargin = 0; 
   rasterizeDocumentLoadOptions.TopMargin = 0; 
   rasterizeDocumentLoadOptions.RightMargin = 0; 
   rasterizeDocumentLoadOptions.BottomMargin = 0; 
 
   // The PDF file we are testing. This could be an XPS, RTF, TXT or XLS file as well 
   string imageFileName = @"C:\Users\Public\Documents\LEADTOOLS Images\Leadtools.pdf"; 
 
   // Show the file information 
   using(CodecsImageInfo imageInfo = codecs.GetInformation(imageFileName, true)) 
   { 
      CodecsDocumentImageInfo documentImageInfo = imageInfo.Document; 
 
      // If this is a document file, show the document information 
      if(documentImageInfo.IsDocumentFile) 
      { 
         Console.WriteLine("Document file"); 
         Console.WriteLine("  Original size is: {0} by {1} {2}", 
            documentImageInfo.PageWidth, documentImageInfo.PageHeight, documentImageInfo.Unit); 
 
         Console.WriteLine("  Using current rasterization, load size will be: {0} by {1} pixels at {2} by {3}", 
            imageInfo.Width, imageInfo.Height, imageInfo.XResolution, imageInfo.YResolution); 
      } 
      else 
      { 
         // Regular raster image, show the image information 
         Console.WriteLine("Raster file"); 
         Console.WriteLine("  Original size is: {0} by {1} pixels at {2} by {3}", 
            imageInfo.Width, imageInfo.Height, imageInfo.XResolution, imageInfo.YResolution); 
      } 
   } 
 
   // Example 1. Load at original document size at 300 DPI 
   rasterizeDocumentLoadOptions.SizeMode = CodecsRasterizeDocumentSizeMode.None; 
   rasterizeDocumentLoadOptions.XResolution = 300; 
   rasterizeDocumentLoadOptions.YResolution = 300; 
 
   using(RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) 
   { 
      ShowResult(codecs, image); 
   } 
 
   // Example 2. Fit the document at 640 by 480 pixels at 96 DPI keeping the aspect ratio 
   rasterizeDocumentLoadOptions.SizeMode = CodecsRasterizeDocumentSizeMode.Fit; 
   rasterizeDocumentLoadOptions.PageWidth = 640; 
   rasterizeDocumentLoadOptions.PageHeight = 480; 
   rasterizeDocumentLoadOptions.Unit = CodecsRasterizeDocumentUnit.Pixel; 
   rasterizeDocumentLoadOptions.XResolution = 96; 
   rasterizeDocumentLoadOptions.YResolution = 96; 
 
   using(RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) 
   { 
      ShowResult(codecs, image); 
   } 
 
   // Example 3. Fit the document at 8.5 by 11 inches at 96 DPI keeping the aspect ratio 
   rasterizeDocumentLoadOptions.SizeMode = CodecsRasterizeDocumentSizeMode.Fit; 
   rasterizeDocumentLoadOptions.PageWidth = 8.5; 
   rasterizeDocumentLoadOptions.PageHeight = 11; 
   rasterizeDocumentLoadOptions.Unit = CodecsRasterizeDocumentUnit.Inch; 
   rasterizeDocumentLoadOptions.XResolution = 300; 
   rasterizeDocumentLoadOptions.YResolution = 300; 
 
   using(RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) 
   { 
      ShowResult(codecs, image); 
   } 
 
   // Example 4. Stretch the image to always be 4 by 4 inches at 150 DPI. Aspect ratio may differ 
   rasterizeDocumentLoadOptions.SizeMode = CodecsRasterizeDocumentSizeMode.Stretch; 
   rasterizeDocumentLoadOptions.PageWidth = 4; 
   rasterizeDocumentLoadOptions.PageHeight = 4; 
   rasterizeDocumentLoadOptions.Unit = CodecsRasterizeDocumentUnit.Inch; 
   rasterizeDocumentLoadOptions.XResolution = 150; 
   rasterizeDocumentLoadOptions.YResolution = 150; 
 
   using(RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) 
   { 
      ShowResult(codecs, image); 
   } 
 
   codecs.Dispose(); 
   RasterCodecs.Shutdown(); 

 
private static void ShowResult(RasterCodecs codecs, RasterImage image) 

   CodecsRasterizeDocumentLoadOptions rasterizeDocumentLoadOptions = codecs.Options.RasterizeDocument.Load; 
 
   Console.WriteLine("Showing result.."); 
   Console.WriteLine("  Current rasterization options:"); 
   Console.WriteLine("    Size mode is: {0}", rasterizeDocumentLoadOptions.SizeMode); 
   Console.WriteLine("    Page size is {0} by {1} {2}", 
      rasterizeDocumentLoadOptions.PageWidth, rasterizeDocumentLoadOptions.PageHeight, rasterizeDocumentLoadOptions.Unit); 
   Console.WriteLine("    Resolution is {0} by {1}", 
      rasterizeDocumentLoadOptions.XResolution, rasterizeDocumentLoadOptions.YResolution); 
 
   Console.WriteLine("  Loaded raster image size is: {0} by {1} at {2} by {3}", 
      image.ImageWidth, image.ImageHeight, image.XResolution, image.YResolution); 
 
   // Code to verify our results 
 
   // Get the suggested page width and height in pixels 
   double pageWidthInPixels; 
   double pageHeightInPixels; 
 
   switch(rasterizeDocumentLoadOptions.Unit) 
   { 
      case CodecsRasterizeDocumentUnit.Inch: 
         pageWidthInPixels = rasterizeDocumentLoadOptions.PageWidth * rasterizeDocumentLoadOptions.XResolution; 
         pageHeightInPixels = rasterizeDocumentLoadOptions.PageHeight * rasterizeDocumentLoadOptions.YResolution; 
         break; 
 
      case CodecsRasterizeDocumentUnit.Millimeter: 
         pageWidthInPixels = rasterizeDocumentLoadOptions.PageWidth * rasterizeDocumentLoadOptions.XResolution * 25.400000025908000026426160026955; 
         pageHeightInPixels = rasterizeDocumentLoadOptions.PageHeight * rasterizeDocumentLoadOptions.YResolution * 25.400000025908000026426160026955; 
         break; 
 
      case CodecsRasterizeDocumentUnit.Pixel: 
      default: 
         pageWidthInPixels = rasterizeDocumentLoadOptions.PageWidth; 
         pageHeightInPixels = rasterizeDocumentLoadOptions.PageHeight; 
         break; 
   } 
 
   // Verify 
   switch(rasterizeDocumentLoadOptions.SizeMode) 
   { 
      case CodecsRasterizeDocumentSizeMode.Fit: 
      case CodecsRasterizeDocumentSizeMode.FitAlways: 
         // The image width/height must not be greater than suggested page width/height 
         Console.WriteLine("Image width/height must be less than or equal to page width/height"); 
         System.Diagnostics.Debug.Assert(image.ImageWidth <= pageWidthInPixels); 
         System.Diagnostics.Debug.Assert(image.ImageHeight <= pageHeightInPixels); 
         break; 
 
      case CodecsRasterizeDocumentSizeMode.FitWidth: 
         // The image width must be equal to the suggested page width 
         Console.WriteLine("Image width must be equal to page width"); 
         System.Diagnostics.Debug.Assert(image.ImageWidth == pageWidthInPixels); 
         break; 
 
      case CodecsRasterizeDocumentSizeMode.Stretch: 
         // The image width/height must be equal to the suggested page width/height 
         Console.WriteLine("Image width/height must be equal to suggested page width/height"); 
         System.Diagnostics.Debug.Assert(image.ImageWidth == pageWidthInPixels); 
         System.Diagnostics.Debug.Assert(image.ImageHeight == pageHeightInPixels); 
         break; 
 
      case CodecsRasterizeDocumentSizeMode.None: 
      default: 
         Console.WriteLine("Loading at original document page size"); 
         // No checking 
         break; 
   } 
}

Remarks

LEADTOOLS provides support for loading a document as a raster image. Documents formats such as PDF, XPS, XLS, RTF and Text do not contain physical width, height or resolution. It is up to the loader (in this case, the RasterCodecs object) to specify the transformation from logical coordinates to physical pixels through a process called rasterization.

Rasterization is the process of converting a document to a raster image. To check if a certain file on disk (or in a .NET stream) contains a document file rather than a regular raster image, call the RasterCodecs.GetInformation and check the CodecsDocumentImageInfo.IsDocumentFile property. Here is a code snippet:

             CodecsImageInfo imageInfo = rasterCodecsInstance.GetInformation(fileName, true);
             if(imageInfo.Document.IsDocumentFile)
             {
                // A document file (PDF, XPS, rtc), show the original document size:
                Console.WriteLine("Document file, original size is {0} by {1} {2}",
                   imageInfo.Document.PageWidth, imageInfo.Document.PageHeight, imageInfo.Document.Unit);
            
                // Your code specific to rasterization based on the original document size goes here
             }
             

To rasterize a document file, set the properties of the CodecsRasterizeDocumentLoadOptions to the required value. For example, the following code snippet will instruct LEADTOOLS to fit any document files into 8.5 by 11 inches at 300 paper size. Every document file loaded with the RasterCodecs.Load methods will have width/height of no more than 2550 by 3300 pixels with a resolution of 300 by 300:

             CodecsRasterizeDocumentLoadOptions rasterDocumentLoadOptions = rasterCodecsInstance.Options.RasterizeDocument.Load;
             // Enable rasterization
             rasterDocumentLoadOptions.Enabled = true;
             // Set the size mode, we want to fit
             rasterDocumentLoadOptions.SizeMode = CodecsRasterizeDocumentSizeMode.Fit;
             // Set the page size
             rasterDocumentLoadOptions.PageWidth = 8.5;
             rasterDocumentLoadOptions.PageHeight = 11;
             rasterDocumentLoadOptions.Unit = CodecsRasterizeDocumentUnit.Inch;
             // And the resolution
             rasterDocumentLoadOptions.XResolution = 300;
             rasterDocumentLoadOptions.YResolution = 300;
            
             // Load the image
             RasterImage image = rasterCodecsInstance.Load(fileName);
            
             // Show its pixel size, it should be less than or equal to
             // 2550 by 3300 pixels (8.5 * 300 by 11 * 300)
             Console.WriteLine("Loaded image size: {0} by {1} pixels at {2} by {3}",
             image.ImageWidth, image.ImageHeight, image.XResolution, image.YResolution);
             

The CodecsRasterizeDocumentLoadOptions class contains the following properties:

PropertyDescription
Enabled

Enable or disable using the current CodecsRasterizeDocumentLoadOptions properties when loading document files. You must set the value of this property to true before using the other members of this class.

PageWidth and PageHeight

The result page width and height (in Unit). The value of the result raster image width and height in pixels depends on the current resolution and size mode values.

LeftMargin, TopMargin, RightMargin and BottomMargin

The size of the margins to leave from the left, top, right and bottom in Unit. Currently, only RTF and TXT documents support margins.

Unit

The units to use for the PageWidth, PageHeight, LeftMargin, TopMargin, RightMargin and BottomMargin values.

XResolution and YResolution

The resolution to use when rasterization the document files. A value of 0 means using the current screen resolution (usually 96). The resolution controls the pixel density of the result raster image. For example, if you specify 8.5 by 11 inches page width and height and a resolution of 96, the result image will have a pixel width and height of (8.5 * 96 = 816) and (11 * 96 = 1056) pixels. This is suitable for viewing at a 1005 by 11 inch document, this results in a raster image size if P:Leadtools.Codecs.CodecsRasterizeDocumentLoadOptions.SizeMode Refer to T:Leadtools.Codecs.CodecsRasterizeDocumentSizeMode

The value of CodecsRasterizeDocumentLoadOptions.Enabled:P:Leadtools.Codecs.CodecsRasterizeDocumentLoadOptions.Enabled This is done for backward compatibilty and means the current T:Leadtools.Codecs.CodecsRasterizeDocumentLoadOptions A convenient way to do that is after instantiating the T:Leadtools.Codecs.RasterCodecs object you will be using in your codeCodecsRasterizeDocumentLoadOptions.Enabled:P:Leadtools.Codecs.CodecsRasterizeDocumentLoadOptions.Enabled% to true in the next version so it is recommended you start porting your code to use the new options.

Inheritance Hierarchy

System.Object
   Leadtools.Codecs.CodecsRasterizeDocumentLoadOptions

Requirements

Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family

See Also