The ID to be used with the created document.
public string UserId { get; set; }
String that specifies the ID to be used with the created document. The default value is null.
When the value of DocumentId is null (the default), then the document factory will create a new unique ID using a GUID generator (DocumentFactory.NewCacheId). If the value is not null, then it is assumed to be a user-defined ID and used as is. In either case, the value is set in the LEADDocument.DocumentId property of the newly created document.
User-defined IDs can be used when the system already have unique ID's associated with the documents to be viewer. The document factory will not check nor guarantee the uniqueness of these IDs.
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";
}