LEADTOOLS Forms (Leadtools.Forms.DocumentWriters assembly)

DocumentWriter Class

Show in webframe
Example 







Members 
Support for creating document files such as PDF, XPS, DOC, HTML, RTF, or Text from Windows Enhanced Meta Files (EMF).
Object Model
Syntax
public class DocumentWriter 
'Declaration
 
Public Class DocumentWriter 
'Usage
 
Dim instance As DocumentWriter
public sealed class DocumentWriter 

            

            
function Leadtools.Forms.DocumentWriters.DocumentWriter()
public ref class DocumentWriter 
Remarks

The DocumentWriter and the LEADTOOLS Document Writers toolkit is used to create multi-page and searchable documents from one or more Windows Enhanced Meta File (EMF) objects.

Support for various popular formats is included, such as PDF, XPS, DOC, HTML, RTF or Text. For a list of all the document formats supported, refer to the DocumentFormat enumeration.

To create a document from EMF, perform the following steps

The Windows Enhanced Meta File (EMF) objects can be obtained from various sources as shown in the following list:

Many of the document formats supported by DocumentWriter contain extra options and functionality that can be controlled through the use of the DocumentWriter.GetOptions and DocumentWriter.GetOptions methods. These options can be set and then saved to an external XML file using the DocumentWriter.SaveOptions method. Later, you can re-load these options using the DocumentWriter.LoadOptions method.

Support is provided to monitor the document creation operation through the DocumentWriter.Progress event. Your application can provide a visual feedback using a progress bar and a cancel button to the user to allow both monitoring and abortion of the current operation.

The LEADTOOLS Temporary Document format (DocumentFormat.Ltd) allows you to create a temporary document on disk that you can add pages to in between sessions. This can be helpful when you have large amount of pages to add to a PDF document for example or when not all the pages can be obtained at the same time (for example, in a server scenario when the client sends one page to the server at a time). After all pages are added to the temporary file on disk, you can use the DocumentWriter.Convert method to convert this file to the final document (for example PDF or DOC).

The Dots/Inch (DPI) of the page is the same as the DPI stored in the DocumentPage.EmfHandle property. Therefore, to create a page with 300 DPI, you must add a document page with an EMF that has a DPI of 300 (both horizontally or vertically although the LEADTOOLS Document Writer supports different values for the DPI). When using the PDF with image/text feature, set the DPI of the Leadtools.RasterImage object to the same DPI as the EMF handle using the RasterImage.XResolution and RasterImage.YResolution properties.

You can also use the DocumentWriter.AppendLtd method to append pages from one LTD file to another.

Example
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms.DocumentWriters
Imports Leadtools.Forms.Ocr

' Windows API functions needed to load/delete an EMF
<DllImport("gdi32.dll")> _
Private Shared Function GetEnhMetaFile(ByVal lpszMetaFile As String) As IntPtr
End Function
<DllImport("gdi32.dll")> _
Private Shared Function DeleteEnhMetaFile(ByVal hemf As IntPtr) As Boolean
End Function
Private Sub DocumentWriterExample()
    Dim tifFileName1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif")
    Dim tifFileName2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Ocr2.tif")

    Dim outputDirectory As String = LEAD_VARS.ImagesDir

    ' Create the output directory
    If Directory.Exists(outputDirectory) Then
        Directory.Delete(outputDirectory, True)
    End If

    Directory.CreateDirectory(outputDirectory)

    ' Create an instance of the engine
    Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, False)
        ' Start the engine using default parameters
        Console.WriteLine("Starting up the engine...")
        ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrAdvantageRuntimeDir)

        ' Create the OCR document
        Console.WriteLine("Creating the OCR document...")
        Dim ocrDocumentManager As IOcrDocumentManager = ocrEngine.DocumentManager
        Using ocrDocument As IOcrDocument = ocrDocumentManager.CreateDocument()
            ' Add the pages to the document
            Console.WriteLine("Adding the pages...")
            ocrDocument.Pages.AddPage(tifFileName1, Nothing)
            ocrDocument.Pages.AddPage(tifFileName2, Nothing)

            ' Recognize the pages to this document. Note, we did not call AutoZone, it will explicitly be called by Recognize
            Console.WriteLine("Recognizing all the pages...")
            ocrDocument.Pages.Recognize(Nothing)

            ' Save to all the formats supported by this OCR engine
            Dim formats As Array = [Enum].GetValues(GetType(DocumentFormat))
            For Each format As DocumentFormat In formats
                Dim friendlyName As String = DocumentWriter.GetFormatFriendlyName(format)
                Console.WriteLine("Saving (using default options) to {0}...", friendlyName)

                ' Construct the output file name (output_directory + document_format_name + . + extension)
                Dim extension As String = DocumentWriter.GetFormatFileExtension(format)
                Dim outputFileName As String = Path.Combine(outputDirectory, format.ToString() + "." + extension)

                ' Save the document
                ocrDocument.Save(outputFileName, format, Nothing)

                ' If this is the LTD format, convert it to PDF
                If format = DocumentFormat.Ltd Then
                    Console.WriteLine("Converting the LTD file to PDF...")
                    Dim pdfFileName As String = Path.Combine(outputDirectory, format.ToString() + "_pdf.pdf")
                    Dim docWriter As DocumentWriter = ocrEngine.DocumentWriterInstance
                    docWriter.Convert(outputFileName, pdfFileName, DocumentFormat.Pdf)
                End If
            Next

            ' Now save to all the engine native formats (if any) supported by the engine
            Dim engineFormats() As String = ocrDocumentManager.GetSupportedEngineFormats()
            For Each engineFormat As String In engineFormats
                Dim friendlyName As String = ocrDocumentManager.GetEngineFormatFriendlyName(engineFormat)
                Console.WriteLine("Saving to engine native format {0}...", friendlyName)

                ' Construct the output file name (output_directory + "engine" + engine_format_name + . + extension)
                Dim extension As String = ocrDocumentManager.GetEngineFormatFileExtension(engineFormat)
                Dim outputFileName As String = Path.Combine(outputDirectory, "engine_" + engineFormat + "." + extension)

                ' To use this format, set it in the IOcrDocumentManager.EngineFormat and do a normal save using DocumentFormat.User
                ' Save the document
                ocrDocumentManager.EngineFormat = engineFormat
                ocrDocument.Save(outputFileName, DocumentFormat.User, Nothing)
            Next
        End Using

        ' Shutdown the engine
        ' Note: calling Dispose will also automatically shutdown the engine if it has been started
        Console.WriteLine("Shutting down...")
        ocrEngine.Shutdown()
    End Using
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
Public Const OcrAdvantageRuntimeDir As String = "C:\LEADTOOLS 18\Bin\Common\OcrAdvantageRuntime"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms.DocumentWriters;
using Leadtools.Drawing;
using Leadtools.Forms.Ocr;

// Windows API functions needed to load/delete an EMF
[DllImport("gdi32.dll")]
private static extern IntPtr GetEnhMetaFile(string lpszMetaFile);
[DllImport("gdi32.dll")]
private static extern bool DeleteEnhMetaFile(IntPtr hemf);
public void DocumentWriterExample()
{
    string tifFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif");
    string tifFileName2 = Path.Combine(LEAD_VARS.ImagesDir, "Ocr2.tif");
    string outputDirectory = LEAD_VARS.ImagesDir;
    // Create the output directory
    if (Directory.Exists(outputDirectory))
        Directory.Delete(outputDirectory, true);

    Directory.CreateDirectory(outputDirectory);

    // Create an instance of the engine
    using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false))
    {
        // Start the engine using default parameters
        Console.WriteLine("Starting up the engine...");
        ocrEngine.Startup(null, null, null, LEAD_VARS.OcrAdvantageRuntimeDir);

        // Create the OCR document
        Console.WriteLine("Creating the OCR document...");
        IOcrDocumentManager ocrDocumentManager = ocrEngine.DocumentManager;
        using (IOcrDocument ocrDocument = ocrDocumentManager.CreateDocument())
        {
            // Add the pages to the document
            Console.WriteLine("Adding the pages...");
            ocrDocument.Pages.AddPage(tifFileName1, null);
            ocrDocument.Pages.AddPage(tifFileName2, null);

            // Recognize the pages to this document. Note, we did not call AutoZone, it will explicitly be called by Recognize
            Console.WriteLine("Recognizing all the pages...");
            ocrDocument.Pages.Recognize(null);

            // Save to all the formats supported by this OCR engine
            Array formats = Enum.GetValues(typeof(DocumentFormat));
            foreach (DocumentFormat format in formats)
            {
                string friendlyName = DocumentWriter.GetFormatFriendlyName(format);
                Console.WriteLine("Saving (using default options) to {0}...", friendlyName);

                // Construct the output file name (output_directory + document_format_name + . + extension)
                string extension = DocumentWriter.GetFormatFileExtension(format);
                string outputFileName = Path.Combine(outputDirectory, format.ToString() + "." + extension);

                // Save the document
                ocrDocument.Save(outputFileName, format, null);

                // If this is the LTD format, convert it to PDF
                if (format == DocumentFormat.Ltd)
                {
                    Console.WriteLine("Converting the LTD file to PDF...");
                    string pdfFileName = Path.Combine(outputDirectory, format.ToString() + "_pdf.pdf");
                    DocumentWriter docWriter = ocrEngine.DocumentWriterInstance;
                    docWriter.Convert(outputFileName, pdfFileName, DocumentFormat.Pdf);
                }
            }

            // Now save to all the engine native formats (if any) supported by the engine
            string[] engineFormats = ocrDocumentManager.GetSupportedEngineFormats();
            foreach (string engineFormat in engineFormats)
            {
                string friendlyName = ocrDocumentManager.GetEngineFormatFriendlyName(engineFormat);
                Console.WriteLine("Saving to engine native format {0}...", friendlyName);

                // Construct the output file name (output_directory + "engine" + engine_format_name + . + extension)
                string extension = ocrDocumentManager.GetEngineFormatFileExtension(engineFormat);
                string outputFileName = Path.Combine(outputDirectory, "engine_" + engineFormat + "." + extension);

                // To use this format, set it in the IOcrDocumentManager.EngineFormat and do a normal save using DocumentFormat.User
                // Save the document
                ocrDocumentManager.EngineFormat = engineFormat;
                ocrDocument.Save(outputFileName, DocumentFormat.User, null);
            }
        }

        // Shutdown the engine
        // Note: calling Dispose will also automatically shutdown the engine if it has been started
        Console.WriteLine("Shutting down...");
        ocrEngine.Shutdown();
    }
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
public const string OcrAdvantageRuntimeDir = @"C:\LEADTOOLS 18\Bin\Common\OcrAdvantageRuntime";
}
Requirements

Target Platforms

See Also

Reference

DocumentWriter Members
Leadtools.Forms.DocumentWriters Namespace
Introduction

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Forms.DocumentWriters requires a Document or Medical toolkit license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features