Stream containing the data of the original document.
public Stream GetDocumentStream()
Stream containing the data of the original document.
The stream returned from this method is the same one used by the various parts of the object when loading the pages and should not be disposed by the user. To ensure thread safety, always use the LockStreams before trying to use the stream and UnlockStreams when done to coordinate the use of this stream between user application and the document object.
Call HasStream to detect whether the document has a valid stream.
When a document is created using DocumentFactory.LoadFromUri or DocumentFactory.LoadFromUriAsync, the framework will download the original file and store it in the cache if it is used, or a temporary file on the system otherwise. In these cases, the value of IsDownloaded will be true and GetDocumentFileName will return the path to this file (in the cache directly or the temporary one created). Uri will point to the original file or URL used to download the document. If the cache does not support disk access (external resource), the document data is still stored in the cache and can be retrieved using GetDocumentStream.
If the document is created using DocumentFactory.LoadFromFile, then the framework will not download the original file. Instead, the framework will use it as is. In this case, the value of IsDownloaded will be false and GetDocumentFileName will return the path to the original file used to load the document. Uri will return the same value as GetDocumentFileName in this situation.
If the document is created using DocumentFactory.LoadFromStream, then the framework will not download the original file. Instead, the framework will use the Stream as is. In this case, the value of IsDownloaded will be false and GetDocumentFileName and Uri will return null as well. If the document is then saved into the cache and re-loaded (using SaveToCache and DocumentFactory.LoadFromCache), then the document is treated as if it was loaded from a file.
For more information, refer to Loading Using LEADTOOLS Document Library.
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";
}