←Select platform

DocumentMetadata Class

Summary

Manages the metadata of the document.

Syntax
C#
C++/CLI
Java
Python
[SerializableAttribute()] 
[CollectionDataContractAttribute()] 
public class DocumentMetadata : Dictionary<string, string> 
public [SerializableAttribute,  
   CollectionDataContractAttribute] 
   ref class DocumentMetadata : System::Collections::Generic::Dictionary<String^, String^> 
public class DocumentMetadata extends HashMap<String, String> 
class DocumentMetadata(Dictionary): 
Remarks

DocumentMetadata manages the metadata of the document and can be accessed through the Metadata property of LEADDocument.

The metadata includes default values added by the DocumentFactory when the document is loaded or created as well as any other data extracted from the document file itself, such as author, subject and any keywords stored by other applications.

Each metadata item is a key/value pair of type string/string. It is up to the user to read the value string and convert to any other data type if required. DocumentMetadata derives from [System.Collections.Generic.Dictionary2](https://msdn.microsoft.com/en-us/library/System.Collections.Generic.Dictionary2.aspx) and items can be added to it directly.

When DocumentFactory creates a new document using DocumentFactory.Create or loads a document using LoadFromFile, LoadFromUri, LoadFromUriAsync or LoadFromStream the following metadata are automatically added:

Key Value
Created

Current time as string (System.DateTime.ToString).

Accessed

Current time as string (System.DateTime.ToString).

Modified

Current time as string (System.DateTime.ToString).

When the document type is PDF, the DocumentFactory will add the values found in PDFDocument.DocumentProperties into DocumentMetadata. These values are then used when the document is converted as PDF.

When the document type supports file comments (CommentsSupported will add the value of the comments found into DocumentMetadata. These values are then used when the document is converted to another type that supports the same comments.

The user can add, modify or delete any values at any time and they will be saved and cached.

Example
C#
Java
using Leadtools; 
using Leadtools.Caching; 
using Leadtools.Document; 
 
 
public void DocumentExample() 
{ 
   var cache = GetCache(); 
 
   var policy = new CacheItemPolicy(); 
   policy.AbsoluteExpiration = DateTime.Now + new TimeSpan(0, 0, 1); 
   policy.SlidingExpiration = new TimeSpan(0, 0, 1); 
 
   var options = new LoadDocumentOptions(); 
   options.CachePolicy = policy; 
   options.Cache = cache; 
 
   if(options.Cache == null) 
   { 
      options.Cache = DocumentFactory.Cache; 
   } 
 
   string documentId = null; 
 
   using (var document = DocumentFactory.LoadFromFile(Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf"), options)) 
   { 
      document.GetDocumentFileName(); 
      document.IsReadOnly = false; 
      document.AutoDeleteFromCache = false; 
      // DocumentImages reference 
      document.Images.DefaultBitsPerPixel = 24; 
 
      Console.WriteLine(document.Images.IsResolutionsSupported); 
      Console.WriteLine(document.Images.IsSvgSupported); 
 
      // Check if the document has a stream in memory 
      if (document.HasStream) 
      { 
         // Get the document stream 
         document.GetDocumentStream(); 
      } 
 
      // Indicate whether the document is using the cache or not 
      Console.WriteLine(document.HasCache); 
             
      //Indicate if the document was downloaded 
      Console.WriteLine(document.IsDownloaded); 
 
      // Gets a value that determines whether the document structure is supported 
      Console.WriteLine(document.IsStructureSupported); 
 
      // Output metadata values (DocumentMetadata reference) 
      Console.WriteLine(document.Metadata.Values.Count); 
 
      // Get the Mime type of the document 
      Console.WriteLine(document.MimeType); 
 
      // Parse document structure data (DocumentStructure reference) 
      foreach(DocumentBookmark bookmark in document.Structure.Bookmarks) 
      { 
         bookmark.Title = null; 
         bookmark.FontStyles = DocumentFontStyles.Normal; 
         document.Structure.Bookmarks.Add(bookmark); 
         Console.WriteLine(bookmark.Children); 
         Console.WriteLine(bookmark.Target); 
         Console.WriteLine(document.Structure.Bookmarks.Count); 
         Console.WriteLine(document.Structure.IsParsed); 
         Console.WriteLine(document.Structure.ParseBookmarks); 
      } 
 
      document.Structure.Parse(); 
 
      // Get the document URI 
      Console.WriteLine(document.Uri); 
 
      // Get each DocumentPage object (DocumentPage & DocumentPages reference) 
      foreach (DocumentPage page in document.Pages) 
      { 
         // Get the page as a raster image at the specified resolution 
         page.GetImage(0); 
         // Get the page as an Svg with specified options 
         page.GetSvg(null); 
         // Flip this page horizontally 
         page.Reverse(); 
         // Use this method to add an array of links for this page 
         page.SetLinks(null); 
         page.IsLinksModified = false; 
         page.Resolution = 0; 
         page.ViewPerspective = RasterViewPerspective.TopLeft; 
         page.SetLinks(page.GetLinks()); 
         Console.WriteLine($"Page Number: {page.PageNumber}, Original PageNumber: {page.OriginalPageNumber}, Size of the page: {page.Size}"); 
      } 
 
      PrintOutDocumentInfo(document); 
 
      documentId = document.DocumentId; 
      document.SaveToCache(); 
   } 
 
   System.Threading.Thread.Sleep(2000); 
 
   var loadFromCacheOptions = new LoadFromCacheOptions(); 
   loadFromCacheOptions.Cache = cache; 
   loadFromCacheOptions.DocumentId = documentId; 
   using (var document = DocumentFactory.LoadFromCache(loadFromCacheOptions)) 
   { 
      if (null == document) 
      { 
         Console.WriteLine("Cached document was expired and deleted!"); 
      } 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStream; 
import java.net.URI; 
import java.net.URISyntaxException; 
import java.util.Calendar; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.caching.*; 
import leadtools.document.*; 
 
 
public void documentExample() throws InterruptedException, IOException { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
 
   FileCache cache = getCache(); 
 
   CacheItemPolicy policy = new CacheItemPolicy(); 
   Calendar nowPlus = Calendar.getInstance(); 
   nowPlus.add(Calendar.SECOND, 1); 
   policy.setAbsoluteExpiration(nowPlus.getTime()); 
 
   policy.setSlidingExpiration(1); 
 
   LoadDocumentOptions options = new LoadDocumentOptions(); 
   options.setCachePolicy(policy); 
   options.setCache(cache); 
 
   if (options.getCache() == null) { 
      options.setCache(DocumentFactory.getCache()); 
   } 
 
   LEADDocument document = DocumentFactory.loadFromFile(combine(LEAD_VARS_IMAGES_DIR, "Leadtools.pdf"), options); 
 
   document.getDocumentFileName(); 
   document.setReadOnly(false); 
   document.setAutoDeleteFromCache(false); 
   // DocumentImages reference 
   document.getImages().setDefaultBitsPerPixel(24); 
 
   System.out.println(document.getImages().isResolutionsSupported()); 
   System.out.println(document.getImages().isSvgSupported()); 
 
   // Check if the document has a stream in memory 
   if (document.hasStream()) { 
      // Get the document stream 
      document.getDocumentStream(); 
   } 
 
   // Indicate whether the document is using the cache or not 
   System.out.println(document.hasCache()); 
 
   // Indicate if the document was downloaded 
   System.out.println(document.isDownloaded()); 
 
   // Gets a value that determines whether the document structure is supported 
   System.out.println(document.isStructureSupported()); 
 
   // Output metadata values (DocumentMetadata reference) 
   System.out.println(document.getMetadata().values().size()); 
 
   // Get the Mime type of the document 
   System.out.println(document.getMimeType()); 
 
   // Parse document structure data (DocumentStructure reference) 
   for (DocumentBookmark bookmark : document.getStructure().getBookmarks()) { 
      bookmark.setTitle(null); 
      bookmark.setFontStyles(DocumentFontStyles.NORMAL); 
      document.getStructure().getBookmarks().add(bookmark); 
      System.out.println(bookmark.getChildren()); 
      System.out.println(bookmark.getTarget()); 
      System.out.println(document.getStructure().getBookmarks().size()); 
      System.out.println(document.getStructure().isParsed()); 
      System.out.println(document.getStructure().getParseBookmarks()); 
   } 
 
   document.getStructure().parse(); 
 
   // Get the document URI 
   System.out.println(document.getUri()); 
 
   // Get each DocumentPage object (DocumentPage & DocumentPages reference) 
   document.setCacheOptions(document.getCacheOptions()); 
   for (DocumentPage page : document.getPages()) { 
      assertTrue(document != null); 
      System.out.println("Document created successfully"); 
 
      // Get the page as a raster image at the specified resolution 
      page.getImage(0); 
      // Get the page as an Svg with specified options 
      page.getSvg(null); 
      // Flip this page horizontally 
      page.reverse(); 
      // Use this method to add an array of links for this page 
      page.setLinks(null); 
      page.setLinkedModified(false); 
      page.setResolution(0); 
      page.setViewPerspective(RasterViewPerspective.TOP_LEFT); 
      page.setLinks(page.getLinks()); 
      System.out.println("Page Number: " + page.getPageNumber() + ", Original PageNumber: " 
            + page.getOriginalPageNumber() + ", Size of the page: " + page.getSize() + ""); 
   } 
 
   printOutDocumentInfo(document); 
   document.saveToCache(); 
   document.dispose(); 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Document Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.