←Select platform

EmfDocumentOptions Class

Summary
Provides extra options to use when saving a document using the Windows Enhanced Meta File (EMF) format.
Syntax
C#
VB
C++
Java
[SerializableAttribute()] 
[DataContractAttribute()] 
public class EmfDocumentOptions : DocumentOptions 
<DataContractAttribute()> 
<SerializableAttribute()> 
Public Class EmfDocumentOptions  
   Inherits DocumentOptions 
public class EmfDocumentOptions extends DocumentOptions 
[DataContractAttribute()] 
[SerializableAttribute()] 
public ref class EmfDocumentOptions : public DocumentOptions  
Remarks

The Windows Enhanced Meta File (EMF) format does not support multipage documents. Therefore, only the last page added with the DocumentWriter.AddPage will be used in the final document.

Note that this format does not support calling DocumentWriter.InsertPage.

The options set in the EmfDocumentOptions class will be used when the user saves a document using the DocumentFormat.Emf format.

To change the options used with the EMF format, perform the following steps:

  1. Use the DocumentWriter.GetOptions method of the DocumentWriter object being used. Pass DocumentFormat.Emf to the format parameter. Note that the resulting object from the base DocumentOptions class needs to be cast to EmfDocumentOptions.
  2. Use the various EmfDocumentOptions properties to change the options.
  3. Use DocumentWriter.SetOptions to set the new options in the engine.
  4. Now you can call the DocumentWriter.BeginDocument method (with DocumentFormat.Emf for the format parameter) to create a new document and add the pages.

Note that this format does not support calling DocumentWriter.InsertPage.

Currently, the EmfDocumentOptions class contains no extra options.

Example

This example will create a new Windows Enhanced Meta File (EMF) file using the various supported options.

C#
VB
using Leadtools.Document.Writer; 
using Leadtools; 
using Leadtools.Codecs; 
 
public void EmfDocumentOptionsExample() 
{ 
   var inputFileName = Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf"); 
   var outputFileNameTemplate = Path.Combine(LEAD_VARS.ImagesDir, "Example{0}.emf"); 
 
   // Setup a new RasterCodecs object 
   var codecs = new RasterCodecs(); 
   codecs.Options.RasterizeDocument.Load.Resolution = 300; 
 
   // Get the number of pages in the input document 
   var pageCount = codecs.GetTotalPages(inputFileName); 
 
   // Create a new instance of the LEADTOOLS Document Writer 
   var docWriter = new DocumentWriter(); 
 
   // Change the EMF options 
   var emfOptions = docWriter.GetOptions(DocumentFormat.Emf) as EmfDocumentOptions; 
   // EMF currently does not have any extra options 
   // In the future, you can modify the options here if needed 
   docWriter.SetOptions(DocumentFormat.Emf, emfOptions); 
 
   // EMF does not support multiple pages, so we will create the document inside the loop 
 
   // Loop through all the pages 
   for (var pageNumber = 1; pageNumber <= pageCount; pageNumber++) 
   { 
      var outputFileName = string.Format(outputFileNameTemplate, pageNumber); 
 
      // Create a new EMF document 
      Console.WriteLine("Creating new EMF document : {0}", outputFileName); 
      docWriter.BeginDocument(outputFileName, DocumentFormat.Emf); 
 
      // Get the page as SVG 
      Console.WriteLine("Loading page {0}", pageNumber); 
      var page = new DocumentWriterSvgPage(); 
      page.SvgDocument = codecs.LoadSvg(inputFileName, pageNumber, null); 
 
      // Add the page 
      Console.WriteLine("Adding page {0}", pageNumber); 
      docWriter.AddPage(page); 
 
      page.SvgDocument.Dispose(); 
 
      // Finish writing theis EMF file on disk 
      docWriter.EndDocument(); 
   } 
 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images"; 
} 
Imports Leadtools.Document.Writer 
Imports Leadtools 
Imports Leadtools.Codecs 
 
Public Sub EmfDocumentOptionsExample() 
   Dim inputFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf") 
   Dim outputFileNameTemplate As String = Path.Combine(LEAD_VARS.ImagesDir, "Example{0}.emf") 
 
   ' Setup a new RasterCodecs object 
   Dim codecs As New RasterCodecs() 
   codecs.Options.RasterizeDocument.Load.Resolution = 300 
 
   ' Get the number of pages in the input document 
   Dim pageCount As Integer = codecs.GetTotalPages(inputFileName) 
 
   ' Create a new instance of the LEADTOOLS Document Writer 
   Dim docWriter As New DocumentWriter() 
 
   ' Change the EMF options 
   Dim emfOptions As EmfDocumentOptions = DirectCast(docWriter.GetOptions(DocumentFormat.Emf), EmfDocumentOptions) 
   ' EMF currently does not have any extra options 
   ' In the future, you can modify the options here if needed 
   docWriter.SetOptions(DocumentFormat.Emf, emfOptions) 
 
   ' EMF does not support multiple pages, so we will create the document inside the loop 
 
   ' Loop through all the pages 
   For pageNumber As Integer = 1 To pageCount 
      Dim outputFileName As String = String.Format(outputFileNameTemplate, pageNumber) 
 
      ' Create a new EMF document 
      Console.WriteLine("Creating new EMF document : {0}", outputFileName) 
      docWriter.BeginDocument(outputFileName, DocumentFormat.Emf) 
 
      ' Get the page as SVG 
      Console.WriteLine("Loading page {0}", pageNumber) 
      Dim page As New DocumentWriterSvgPage() 
      page.SvgDocument = codecs.LoadSvg(inputFileName, pageNumber, Nothing) 
 
      ' Add the page 
      Console.WriteLine("Adding page {0}", pageNumber) 
      docWriter.AddPage(page) 
 
      page.SvgDocument.Dispose() 
 
      ' Finish writing theis EMF file on disk 
      docWriter.EndDocument() 
   Next 
   codecs.Dispose() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images" 
End Class 
Requirements

Target Platforms

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

Leadtools.Document.Writer Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.