←Select platform

DocumentFactory Class

Summary

Provides support for loading and creating Document objects as well as managing the global cache.

Syntax
C#
VB
C++
Java
public static class DocumentFactory 
Public NotInheritable Class DocumentFactory 
public ref class DocumentFactory sealed abstract 
public final class DocumentFactory 
Remarks

The main class used for the LEADTOOLS Document class library is LEADDocument. This class abstracts the internal implementation to provide unified properties and methods to access the internal document. Users can create a new document or load existing documents from disk file or a URL.

Documents cannot be created directly. Instead, use the static DocumentFactory methods to obtain a LEADDocument instance, as follows:

Member Description

LoadFromFile

Loads a document from existing data stored in a disk file.

LoadFromUri

Loads a document from existing data stored in a remote URI.

LoadFromUriAsync

Loads a document asynchronously from an existing data stored in remote URI.

LoadFromStream

Loads a document from existing data stored in a stream.

Create
Creates a new empty virtual document.
MimeTypes
MIME type whitelisting support.

RasterCodecsTemplate

Global template used when loading and saving raster and SVG images.

These methods, when combined with the ObjectCache, provide the following extra functionality:

Member Description

Cache

The global LEADTOOLS ObjectCache object responsible for managing cache items and expiration policies. The cache can be stored in this value (if the system requires the use of a single global cache) or a new instance is passed directly to the various uploading, loading and saving methods to use distinct or shared caches with each document.

Create

Creates a new empty document.

LoadFromCache

Loads a previously saved document from the cache.

DocumentFactory

Deletes a document from the cache.

GetDocumentCacheInfo

Retrieves information about a document in the cache.

BeginUpload, UploadDocument, UploadAnnotations and AbortUploadDocument

Supports uploading a document to the cache system used by the factory.

DownloadDocument and DownloadAnnotations

Supports uploading a document to the cache system used by the factory.

CloneDocument

Clones (creates a copy) of an existing document in the cache.

Example
C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Document.Writer; 
 
using Leadtools.Document; 
using Leadtools.Caching; 
using Leadtools.Annotations.Engine; 
using Leadtools.Ocr; 
using Leadtools.Barcode; 
using Leadtools.Document.Converter; 
 
 
public void DocumentFactoryExample() 
{ 
	var options = new LoadDocumentOptions(); 
	using (var document = DocumentFactory.LoadFromFile(Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf"), options)) 
	{ 
		PrintOutDocumentInfo(document); 
	} 
} 
 
 
public void PrintOutDocumentInfo(LEADDocument document) 
{ 
	Console.WriteLine("General"); 
	Console.WriteLine("  DocumentId:" + document.DocumentId); 
	if (document.Uri != null) 
		Console.WriteLine("  Uri:" + document.Uri); 
	Console.WriteLine("  Name:" + document.Name); 
	Console.WriteLine("  CacheStatus:" + document.CacheStatus); 
	Console.WriteLine("  LastCacheSyncTime:" + document.LastCacheSyncTime); 
	Console.WriteLine("  IsReadOnly:" + document.IsReadOnly); 
	Console.WriteLine("  IsLocal:" + document.IsLocal); 
	Console.WriteLine("  MimeType:" + document.MimeType); 
	Console.WriteLine("  IsEncrypted:" + document.IsEncrypted); 
	Console.WriteLine("  IsDecrypted:" + document.IsDecrypted); 
	Console.WriteLine("  UserData:" + document.UserData); 
	Console.WriteLine("Cache"); 
	Console.WriteLine("  HasCache:" + document.HasCache); 
	Console.WriteLine("  AutoDeleteFromCache:" + document.AutoDeleteFromCache); 
	Console.WriteLine("Metadata"); 
	foreach (var item in document.Metadata) 
		Console.WriteLine("  {0} {1}", item.Key, item.Value); 
 
	Console.WriteLine("Documents"); 
	Console.WriteLine("  Count:" + document.Documents.Count); 
	foreach (var childDocument in document.Documents) 
	{ 
		Console.WriteLine("    Name:" + childDocument.Name); 
	} 
 
	Console.WriteLine("Pages"); 
	Console.WriteLine("  Count:" + document.Pages.Count); 
 
	for (var pageNumber = 1; pageNumber <= document.Pages.Count; pageNumber++) 
	{ 
		var page = document.Pages[pageNumber - 1]; 
 
		Console.WriteLine("    PageNumber:" + pageNumber); 
		Console.WriteLine("      OriginalPageNumber:" + page.OriginalPageNumber); 
		Console.WriteLine("      OriginalDocumentName:" + page.Document.Name); 
		Console.WriteLine("      Size:{0}", page.Size); 
	} 
 
	Console.WriteLine("--------"); 
} 
 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Document.Writer 
Imports Leadtools.Svg 
Imports Leadtools.Document 
Imports Leadtools.Caching 
Imports Leadtools.Annotations.Engine 
Imports Leadtools.Barcode 
Imports Leadtools.Ocr 
Imports LeadtoolsDocumentExamples.LeadtoolsExamples.Common 
Imports Leadtools.Document.Converter 
 
Public Sub DocumentFactoryExample() 
   Dim options As New LoadDocumentOptions() 
   Using document As Leadtools.Document.LEADDocument = DocumentFactory.LoadFromFile(Path.Combine(ImagesPath.Path, "Leadtools.pdf"), options) 
      PrintOutDocumentInfo(document) 
   End Using 
End Sub 
 
Public Shared Sub PrintOutDocumentInfo(ByVal document As LEADDocument) 
   Console.WriteLine("General") 
   Console.WriteLine("  DocumentId:" + document.DocumentId) 
   If Not IsNothing(document.Uri) Then 
      Console.WriteLine("  Uri:" + document.Uri.ToString()) 
   Else 
      Console.WriteLine("  Name:" + document.Name) 
   End If 
 
   Console.WriteLine("  CacheStatus:" + document.CacheStatus.ToString()) 
   Console.WriteLine("  LastCacheSyncTime:" + document.LastCacheSyncTime.ToString()) 
   Console.WriteLine("  IsReadOnly:" + document.IsReadOnly.ToString()) 
   Console.WriteLine("  IsLocal:" + document.IsLocal.ToString()) 
   Console.WriteLine("  MimeType:" + document.MimeType) 
   Console.WriteLine("  IsEncrypted:" + document.IsEncrypted.ToString()) 
   Console.WriteLine("  IsDecrypted:" + document.IsDecrypted.ToString()) 
   If Not IsNothing(document.UserData) Then 
      Console.WriteLine("  UserData:" + document.UserData.ToString()) 
   End If 
   Console.WriteLine("Cache") 
   Console.WriteLine("  HasCache:" + document.HasCache.ToString()) 
   Console.WriteLine("  AutoDeleteFromCache:" + document.AutoDeleteFromCache.ToString()) 
   Console.WriteLine("Metadata") 
   For Each item As KeyValuePair(Of String, String) In document.Metadata 
      Console.WriteLine("  {0} {1}", item.Key, item.Value) 
   Next 
 
   Console.WriteLine("Documents") 
   Console.WriteLine("  Count:" + document.Documents.Count.ToString()) 
   For Each childDocument As LEADDocument In document.Documents 
      Console.WriteLine("    Name:" + childDocument.Name) 
   Next 
 
   Console.WriteLine("Pages") 
   Console.WriteLine("  Count:" + document.Pages.Count.ToString()) 
 
   For pageNumber As Integer = 1 To document.Pages.Count 
      Dim page As Leadtools.Document.DocumentPage = document.Pages(pageNumber - 1) 
 
      Console.WriteLine("    PageNumber:" + pageNumber.ToString()) 
      Console.WriteLine("      OriginalPageNumber:" + page.OriginalPageNumber.ToString()) 
      Console.WriteLine("      OriginalDocumentName:" + page.Document.Name) 
      Console.WriteLine("      Size:{0}", page.Size.ToString()) 
   Next 
 
   Console.WriteLine("--------") 
End Sub 
Requirements

Target Platforms

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

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