GetItems Method (original) (raw)

Summary

Retrieves this document's modification history.

Syntax

Return Value

List of DocumentHistoryItem that contain the modifications or changes that occurred in this document since it was created or since the last baseline (clear).

Example

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 DocumentHistoryExample() { // Setup a cache FileCache cache = new FileCache(); cache.CacheDirectory = @"c:\cache-dir"; // Create a new document var createOptions = new CreateDocumentOptions(); const string documentId = "virtual"; createOptions.Cache = cache; createOptions.DocumentId = documentId; using (var document = DocumentFactory.Create(createOptions)) { document.Name = "Virtual"; // DocumentHistory reference document.History.AutoUpdate = true; document.IsReadOnly = false; // Show its history ShowHistory("virtual", document); // Ensure it has no pages Debug.Assert(document.Pages.Count == 0); Debug.Assert(document.Documents.Count == 0); // Add some pages // First add the first 2 pages from a PDF file var loadOptions = new LoadDocumentOptions(); loadOptions.Cache = cache; LEADDocument childDocument = DocumentFactory.LoadFromUri(new Uri("https://demo.leadtools.com/images/pdf/leadtools.pdf"), loadOptions); childDocument.AutoDeleteFromCache = false; childDocument.SaveToCache(); childDocument.Annotations.SetHistory(childDocument.Annotations.GetHistory()); 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 last 2 pages from a TIFF file childDocument = DocumentFactory.LoadFromUri(new Uri("https://demo.leadtools.com/images/pdf/leadtools.pdf"), loadOptions); childDocument.AutoDeleteFromCache = false; childDocument.SaveToCache(); document.Pages.Add(childDocument.Pages[2]); document.Pages.Add(childDocument.Pages[3]); // Check the document Debug.Assert(5 == document.Pages.Count); Debug.Assert(2 == document.Documents.Count); // Get each DocumentHistoryItem foreach (DocumentHistoryItem item in document.History.GetItems()) { document.History.SetItems(null); Console.WriteLine(item); } // Enumerate through DocumentHistoryModifyType DocumentHistoryModifyType[] modifyType = (DocumentHistoryModifyType[])Enum.GetValues(typeof(DocumentHistoryModifyType)); foreach (var type in modifyType) { Console.WriteLine($"Type of modification: {type}"); } document.AutoDisposeDocuments = true; document.AutoDeleteFromCache = false; document.SaveToCache(); } // Load it and show its history var loadFromCacheOptions = new LoadFromCacheOptions(); loadFromCacheOptions.Cache = cache; loadFromCacheOptions.DocumentId = documentId; using (var document = DocumentFactory.LoadFromCache(loadFromCacheOptions)) { ShowHistory("virtual pages added", document); // Clear the history document.History.Clear(); } // Now, load the document from the cache using (var document = DocumentFactory.LoadFromCache(loadFromCacheOptions)) { Debug.Assert(5 == document.Pages.Count); Debug.Assert(2 == document.Documents.Count); // Remove some pages document.Pages.RemoveAt(0); document.Pages.RemoveAt(document.Pages.Count - 1); // And rotate another document.Pages[1].Rotate(90); Debug.Assert(3 == document.Pages.Count); Debug.Assert(2 == document.Documents.Count); ShowHistory("virtual pages removed and rotated", document); } // Clean up var deleteFromCacheOptions = new LoadFromCacheOptions(); deleteFromCacheOptions.Cache = cache; deleteFromCacheOptions.DocumentId = documentId; DocumentFactory.DeleteFromCache(deleteFromCacheOptions); } private static void ShowHistory(string message, LEADDocument document) { Console.WriteLine("History " + message); var items = document.History.GetItems(); foreach (var item in items) { Console.WriteLine(" user:{0} timestamp:{1} comment:{2} modifyType:{3} pageNumber:{4}", item.UserId, item.Timestamp, item.Comment, item.ModifyType, item.PageNumber); } }