DisplayName Property (original) (raw)
Summary
Display name of the attachment.
Syntax
public string DisplayName {get; set;}
public:
property String^ DisplayName
{
String^ get()
void set(String^ value)
}
Property Value
The display name of the attachment. The default value is null.
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 ExternalAttachmentsExample()
{
// The cache we are using
var cache = new FileCache();
cache.PolicySerializationMode = CacheSerializationMode.Json;
cache.DataSerializationMode = CacheSerializationMode.Json;
cache.CacheDirectory = @"c:\cache-dir";
// The main document, its a PDF
string mainDocumentFile = @"C:\LEADTOOLS22\Resources\Images\leadtools.pdf";
// Attachments we will be adding: a TIF, another PDF, and a JPG file
string[] attachmentFiles =
{
@"C:\LEADTOOLS22\Resources\Images\ocr1.tif",
@"C:\LEADTOOLS22\Resources\Images\employee benefits survey.pdf",
@"C:\LEADTOOLS22\Resources\Images\cannon.jpg"
};
// Load the main document
string mainDocumentId;
var loadDocumentOptions = new LoadDocumentOptions();
loadDocumentOptions.Cache = cache;
using (LEADDocument mainDocument = DocumentFactory.LoadFromFile(mainDocumentFile, loadDocumentOptions))
{
// Save the document ID so we can load it from cache later
mainDocumentId = mainDocument.DocumentId;
// Show this document, it should have no attachments at this point
ShowDocumentWithAttachments("Initial", mainDocument, 0);
mainDocument.IsReadOnly = false;
// Now, load each attachment document and add it to the main document
foreach (string attachmentFile in attachmentFiles)
{
int attachmentNumber = 1;
using (LEADDocument attachmentDocument = DocumentFactory.LoadFromFile(attachmentFile, loadDocumentOptions))
{
// Save this document to the cache
attachmentDocument.AutoDeleteFromCache = false;
attachmentDocument.SaveToCache();
// Add it to the main document as an attachment
var attachment = new DocumentAttachment();
// The attachment number.
attachment.AttachmentNumber = attachmentNumber;
// This is an external attachment
attachment.IsEmbedded = false;
// And the document ID
attachment.DocumentId = attachmentDocument.DocumentId;
// The rest of the properties are optional but setting them might be helpful to an application user interface
attachment.FileName = attachmentDocument.Name;
attachment.DisplayName = attachmentDocument.Name;
attachment.FileLength = attachmentDocument.FileLength;
attachment.MimeType = attachmentDocument.MimeType;
mainDocument.Attachments.Add(attachment);
attachmentNumber++;
}
}
mainDocument.IsReadOnly = true;
// Now, show the document info again, it should have 3 attachments
ShowDocumentWithAttachments("After adding attachments", mainDocument, attachmentFiles.Length);
// Ensure that attachments will be deleted when the owner document is removed
mainDocument.AutoDeleteAttachmentsFromCache = true;
// Save this document to the cache
mainDocument.AutoDeleteFromCache = false;
mainDocument.SaveToCache();
}
// Re-load the main document from the cache
var loadFromCacheOptions = new LoadFromCacheOptions();
loadFromCacheOptions.Cache = cache;
loadFromCacheOptions.DocumentId = mainDocumentId;
using (LEADDocument mainDocument = DocumentFactory.LoadFromCache(loadFromCacheOptions))
{
// Show this document, it should have the attachments we saved
ShowDocumentWithAttachments("Loaded from cache", mainDocument, attachmentFiles.Length);
}
// Another way of loading this attachment is with DocumentFactory.LoadDocumentAttachment using the attachment number.
// This method can be used to load both external and embedded attachments using the owner document ID and the attachment number.
Console.WriteLine("Using LoadDocumentAttachments:");
for (var attachmentNumber = 1; attachmentNumber <= attachmentFiles.Length; attachmentNumber++)
{
// For loading the main document
loadFromCacheOptions = new LoadFromCacheOptions();
loadFromCacheOptions.Cache = cache;
loadFromCacheOptions.DocumentId = mainDocumentId;
// For loading the attachment
var loadAttachmentOptions = new LoadAttachmentOptions();
loadAttachmentOptions.AttachmentNumber = attachmentNumber;
using (LEADDocument attachmentDocument = DocumentFactory.LoadDocumentAttachment(loadFromCacheOptions, loadAttachmentOptions))
{
Console.WriteLine(" " + GetDocumentInfo(attachmentDocument));
}
}
// Clean up by deleting the original document from the cache. This will cause all attachment documents to be deleted as well
// Since we set AutoDeleteAttachmentsFromCache to true earlier
loadFromCacheOptions = new LoadFromCacheOptions();
loadFromCacheOptions.Cache = cache;
loadFromCacheOptions.DocumentId = mainDocumentId;
DocumentFactory.DeleteFromCache(loadFromCacheOptions);
}
private static void ShowDocumentWithAttachments(string message, LEADDocument document, int attachmentCount)
{
// Show info about this document and any attachments
Console.WriteLine(message);
Console.WriteLine(" " + GetDocumentInfo(document));
// Sanity check
Debug.Assert(attachmentCount == document.Attachments.Count);
if (document.Attachments.Count > 0)
{
Console.WriteLine(" Attachments:");
// Show the attachments
foreach (DocumentAttachment attachment in document.Attachments)
{
// Load the attachment as a LEADDocument using the document ID
// This method works for external attachments only
var loadFromCacheOptions = new LoadFromCacheOptions();
loadFromCacheOptions.Cache = document.GetCache();
loadFromCacheOptions.DocumentId = attachment.DocumentId;
using (LEADDocument attachmentDocument = DocumentFactory.LoadFromCache(loadFromCacheOptions))
{
Console.WriteLine(" " + GetDocumentInfo(attachmentDocument));
}
}
}
}
private static string GetDocumentInfo(LEADDocument document)
{
return $"DocumentId:{document.DocumentId} MimeType:{document.MimeType} Pages:{document.Pages.Count} Attachments:{document.Attachments.Count}";
}