←Select platform

Create(CreateDocumentOptions) Method

Summary

Creates a new empty virtual document.

Syntax
C#
VB
C++
Java
public static LEADDocument Create( 
   CreateDocumentOptions options 
) 
Public Shared Function Create( 
   ByVal options As CreateDocumentOptions 
) As LEADDocument 
public:  
   static LEADDocument^ Create( 
      CreateDocumentOptions^ options 
   ) 
public static Document create(CreateDocumentOptions options) 

Parameters

options

Options to use when creating the document. Cannot be null.

Return Value

The newly created document.

Remarks

Creates a new empty virtual document ready to be filled with pages from other documents.

This method will add items with the key "Created", "Accessed" and "Modified" to Metadata with values equal to the current date and time. The newly created LEADDocument object will have an empty list of Pages. It can then be populated by the user.

The member of options are used as follows:

Member Description
Cache and UseCache Used to determine if the newly created document will be saved into the cache later.
CachePolicy
If caching is used: Copied to the newly created document and is used to determine when the document and its item are purged from the cache.
MimeType
Copied as is into the newly created document MimeType member. This value can be null but it is recommend you set it to the MIME type of the document since it will be used when saving the document. Use one of the MIME types constants defined in the Constants class. In the case of virtual documents, this value can be left as null.

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 DocumentFactoryCreateExample() 
{ 
	var cache = GetCache(); 
 
	// Create a new document 
	var createOptions = new CreateDocumentOptions(); 
	createOptions.Cache = cache; 
 
	string documentId = null; 
 
	using (LEADDocument document = DocumentFactory.Create(createOptions)) 
	{ 
		document.Name = "Virtual"; 
 
		// Should have 0 pages and documents 
		System.Diagnostics.Debug.Assert(document.Pages.Count == 0); 
		System.Diagnostics.Debug.Assert(document.Documents.Count == 0); 
 
		// Add page 1 and 2 from a PDF file 
		LoadDocumentOptions loadOptions = new LoadDocumentOptions(); 
		loadOptions.Cache = cache; 
		LEADDocument childDocument = DocumentFactory.LoadFromFile(Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf"), loadOptions); 
		// Do not dispose the child documents, but save it into the cache 
		// This is optional and is done in this example since we will try to re-load the parent document 
		// from the cache - and the child documents should be in the cache as well 
		childDocument.SaveToCache(); 
		// Now add the pages 
		document.Pages.Add(childDocument.Pages[0]); 
		document.Pages.Add(childDocument.Pages[1]); 
 
		// Add an empty page 
		var documentPage = document.Pages.CreatePage(LeadSizeD.Create(LEADDocument.UnitsPerInch * 8.5, LEADDocument.UnitsPerInch * 11), 300); 
		document.Pages.Add(documentPage); 
 
		// Add page 3 and 4 from a TIF file 
		childDocument = DocumentFactory.LoadFromFile(Path.Combine(LEAD_VARS.ImagesDir, "ocr1.tif"), loadOptions); 
		// Also save it into the cache 
		childDocument.SaveToCache(); 
		// Now add the pages 
		document.Pages.Add(childDocument.Pages[0]); 
		document.Pages.Add(childDocument.Pages[0]); 
 
		// Should have 5 pages and 2 documents (the PDF and the TIF) 
		System.Diagnostics.Debug.Assert(document.Pages.Count == 5); 
		System.Diagnostics.Debug.Assert(document.Documents.Count == 2); 
 
		// Tell the parent document to dispose any child documents when the parent is disposed 
		document.AutoDisposeDocuments = true; 
 
		// Show the info of this document, should say 5 pages 
		Console.WriteLine("Original document information"); 
		PrintOutDocumentInfo(document); 
 
		// Now save, the parent document into the cache 
		document.SaveToCache(); 
 
		// And tell all documents to not delete themselves from the cache 
		document.AutoDeleteFromCache = false; 
 
		// Save the ID so we can load it 
		documentId = document.DocumentId; 
	} 
 
	// Now, load the document from the cache 
	var loadFromCacheOptions = new LoadFromCacheOptions(); 
	loadFromCacheOptions.Cache = cache; 
	loadFromCacheOptions.DocumentId = documentId; 
	using (LEADDocument document = DocumentFactory.LoadFromCache(loadFromCacheOptions)) 
	{ 
		// Should have 5 pages and 2 documents (the PDF and the TIF) 
		System.Diagnostics.Debug.Assert(document.Pages.Count == 5); 
		System.Diagnostics.Debug.Assert(document.Documents.Count == 2); 
 
		// Show the info of this document, should still say 5 pages 
		Console.WriteLine("Loaded from cache information"); 
		PrintOutDocumentInfo(document); 
 
		// Delete first page 
		document.Pages.RemoveAt(0); 
		// Delete the last page 
		document.Pages.RemoveAt(document.Pages.Count - 1); 
 
		// Should have 3 pages and 2 documents (the PDF and the TIF) 
		System.Diagnostics.Debug.Assert(document.Pages.Count == 3); 
		System.Diagnostics.Debug.Assert(document.Documents.Count == 2); 
 
		Console.WriteLine("After removing the first 2 pages"); 
		PrintOutDocumentInfo(document); 
 
		// Delete this document and all its children from the cache when we are disposed 
		document.AutoDeleteFromCache = true; 
	} 
} 
 
 
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("--------"); 
} 
 
 
		public ObjectCache GetCache() 
{ 
	// Create a LEADTOOLS FileCache object 
 
	var cacheDir = Path.Combine(LEAD_VARS.ImagesDir, "cache"); 
	if (Directory.Exists(cacheDir)) 
		Directory.Delete(cacheDir, true); 
 
	Directory.CreateDirectory(cacheDir); 
 
	var cache = new FileCache(); 
	cache.CacheDirectory = cacheDir; 
 
	return cache; 
} 
 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images"; 
} 
 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS21\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 DocumentFactoryCreateExample() 
   Dim cache As ObjectCache = GetCache() 
 
   ' Create a New document 
   Dim createOptions As New CreateDocumentOptions() 
   createOptions.Cache = cache 
 
   Dim documentId As String = Nothing 
 
   Using document As LEADDocument = DocumentFactory.Create(createOptions) 
      document.Name = "Virtual" 
 
      ' Should have 0 pages And documents 
      System.Diagnostics.Debug.Assert(document.Pages.Count = 0) 
      System.Diagnostics.Debug.Assert(document.Documents.Count = 0) 
 
      ' Add page 1 And 2 from a PDF file 
      Dim loadOptions As New LoadDocumentOptions() 
      loadOptions.Cache = cache 
      Dim childDocument As LEADDocument = DocumentFactory.LoadFromFile(Path.Combine(ImagesPath.Path, "Leadtools.pdf"), loadOptions) 
      ' Do Not dispose the child documents, but save it into the cache 
      ' This Is optional And Is done in this example since we will try to re-load the parent document 
      ' from the cache - And the child documents should be in the cache as well 
      childDocument.SaveToCache() 
      ' Now add the pages 
      document.Pages.Add(childDocument.Pages(0)) 
      document.Pages.Add(childDocument.Pages(1)) 
 
      ' Add an empty page 
      Dim documentPage As Leadtools.Document.DocumentPage = document.Pages.CreatePage(LeadSizeD.Create(LEADDocument.UnitsPerInch * 8.5, LEADDocument.UnitsPerInch * 11), 300) 
      document.Pages.Add(documentPage) 
 
      ' Add page 3 And 4 from a TIF file 
      childDocument = DocumentFactory.LoadFromFile(Path.Combine(ImagesPath.Path, "Ocr.tif"), loadOptions) 
      ' Also save it into the cache 
      childDocument.SaveToCache() 
      ' Now add the pages 
      document.Pages.Add(childDocument.Pages(2)) 
      document.Pages.Add(childDocument.Pages(3)) 
 
      ' Should have 5 pages And 2 documents (the PDF And the TIF) 
      System.Diagnostics.Debug.Assert(document.Pages.Count = 5) 
      System.Diagnostics.Debug.Assert(document.Documents.Count = 2) 
 
      ' Tell the parent document to dispose any child documents when the parent Is disposed 
      document.AutoDisposeDocuments = True 
 
      ' Show the info of this document, should say 5 pages 
      Console.WriteLine("Original document information") 
      PrintOutDocumentInfo(document) 
 
      ' Now save, the parent document into the cache 
      document.SaveToCache() 
 
      ' And tell all documents to Not delete themselves from the cache 
      document.AutoDeleteFromCache = False 
 
      ' Save the ID so we can load it 
      documentId = document.DocumentId 
   End Using 
 
   ' Now, load the document from the cache 
   Dim loadFromCacheOptions As New LoadFromCacheOptions 
   loadFromCacheOptions.Cache = cache 
   loadFromCacheOptions.DocumentId = documentId 
   Using document As LEADDocument = DocumentFactory.LoadFromCache(loadFromCacheOptions) 
      ' Should have 5 pages And 2 documents (the PDF And the TIF) 
      System.Diagnostics.Debug.Assert(document.Pages.Count = 5) 
      System.Diagnostics.Debug.Assert(document.Documents.Count = 2) 
 
      ' Show the info of this document, should still say 5 pages 
      Console.WriteLine("Loaded from cache information") 
      PrintOutDocumentInfo(document) 
 
      ' Delete first page 
      document.Pages.RemoveAt(0) 
      ' Delete the last page 
      document.Pages.RemoveAt(document.Pages.Count - 1) 
 
      ' Should have 3 pages And 2 documents (the PDF And the TIF) 
      System.Diagnostics.Debug.Assert(document.Pages.Count = 3) 
      System.Diagnostics.Debug.Assert(document.Documents.Count = 2) 
 
      Console.WriteLine("After removing the first 2 pages") 
      PrintOutDocumentInfo(document) 
 
      ' Delete this document And all its children from the cache when we are disposed 
      document.AutoDeleteFromCache = True 
   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 
 
Public Shared Function GetCache() As ObjectCache 
   ' Create a LEADTOOLS FileCache object 
 
   Dim cacheDir As String = Path.Combine(ImagesPath.Path, "cache") 
   If Directory.Exists(cacheDir) Then 
      Directory.Delete(cacheDir, True) 
   End If 
 
   Directory.CreateDirectory(cacheDir) 
 
   Dim cache As New FileCache() 
   cache.CacheDirectory = cacheDir 
 
   Return cache 
End Function 
Requirements
Target Platforms
Help Version 21.0.2021.7.2
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.