Documents Property (original) (raw)

Summary

Object that manages the children of this document.

Example

using Leadtools; using Leadtools.Caching; using Leadtools.Document; public void DocumentFactoryCreateExample() { var cache = GetCache(); // Create a new document var createOptions = new CreateDocumentOptions(); createOptions.Cache = cache; createOptions.Descriptor = null; createOptions.MimeType = null; createOptions.UseCache = true; createOptions.UserId = null; Console.WriteLine("Cache Policy: {0}", createOptions.CachePolicy.AbsoluteExpiration); 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); // DocumentDocuments reference // 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; } } static class LEAD_VARS { public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; }