The cache containing the document to download.
public ObjectCache Cache {get; set;} public:property ObjectCache^ Cache{ObjectCache^ get()void set(ObjectCache^ value)}
Cache # get and set (DownloadDocumentOptions)
The cache containing the document. The default value is null.
This value cannot be null and must be set to a valid ObjectCache object before calling DocumentFactory.DownloadDocument to download the document.
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 DownloadDocumentExample(){var documentUri = new Uri("https://demo.leadtools.com/images/pdf/leadtools.pdf");string documentFile1 = Path.Combine(LEAD_VARS.ImagesDir, "downloaded1.pdf");string documentFile2 = Path.Combine(LEAD_VARS.ImagesDir, "downloaded2.pdf");// Setup a cacheFileCache cache = new FileCache();cache.CacheDirectory = @"c:\cache-dir";string documentId;// Load a document into the cachevar loadDocumentOptions = new LoadDocumentOptions();loadDocumentOptions.Cache = cache;using (var document = DocumentFactory.LoadFromUri(documentUri, loadDocumentOptions)){// Get its document ID and save itdocumentId = document.DocumentId;document.AutoDeleteFromCache = false;document.AutoSaveToCache = false;document.SaveToCache();}// Now download it all at once into a memory streamvar downloadDocumentOptions = new DownloadDocumentOptions();downloadDocumentOptions.Cache = cache;downloadDocumentOptions.DocumentId = documentId;downloadDocumentOptions.Offset = 0;downloadDocumentOptions.Length = -1;using (var stream = new MemoryStream()){downloadDocumentOptions.Stream = stream;long bytes = DocumentFactory.DownloadDocument(downloadDocumentOptions);Console.WriteLine("Downloaded {0} bytes into the stream", bytes);long annotations = DocumentFactory.DownloadAnnotations(downloadDocumentOptions);Console.WriteLine(annotations + " annotations downloaded");// The following method is obsolete. Use DownloadAnnotations(DownloadDocumentOptions) insteadint annotations2 = DocumentFactory.DownloadAnnotations(downloadDocumentOptions.Cache, downloadDocumentOptions.DocumentId, downloadDocumentOptions.Offset, (int)bytes, stream);Console.WriteLine(annotations2 + " annotations downloaded");// Save the stream to a file and show itusing (var output = File.Create(documentFile1))stream.WriteTo(output);Process.Start(documentFile1);}// Download it again, this time we will buffer it 32K at a timedownloadDocumentOptions = new DownloadDocumentOptions();downloadDocumentOptions.Cache = cache;downloadDocumentOptions.DocumentId = documentId;byte[] buffer = new byte[1024 * 32];using (var output = File.Create(documentFile2)){// Offset to where we are:long offset = 0;int bytes;do{downloadDocumentOptions.Offset = offset;downloadDocumentOptions.Length = buffer.Length;downloadDocumentOptions.Data = buffer;downloadDocumentOptions.DataOffset = 0;bytes = (int)DocumentFactory.DownloadDocument(downloadDocumentOptions);if (bytes > 0){Console.WriteLine("Downloaded {0} bytes into the buffer", bytes);// Next chunkoffset += bytes;output.Write(buffer, 0, bytes);// The following method is obsolete. Use DownloadAnnotations(DownloadDocumentOptions) insteadint annotations = DocumentFactory.DownloadAnnotations(downloadDocumentOptions.Cache, downloadDocumentOptions.DocumentId, downloadDocumentOptions.Offset, buffer, downloadDocumentOptions.DataOffset, buffer.Length);Console.WriteLine(annotations + " annotations downloaded");}}while (bytes > 0);}Process.Start(documentFile2);// We are done, clean upvar deleteFromCacheOptions = new LoadFromCacheOptions();deleteFromCacheOptions.Cache = cache;deleteFromCacheOptions.DocumentId = documentId;DocumentFactory.DeleteFromCache(deleteFromCacheOptions);}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";}
import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.net.MalformedURLException;import java.net.URI;import java.net.URISyntaxException;import java.net.URL;import java.nio.file.Files;import java.nio.file.Paths;import java.util.ArrayList;import java.util.Calendar;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;import java.util.regex.Pattern;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.annotations.engine.*;import leadtools.barcode.*;import leadtools.caching.*;import leadtools.codecs.*;import leadtools.document.*;import leadtools.document.DocumentMimeTypes.UserGetDocumentStatusHandler;import leadtools.document.converter.*;import leadtools.document.writer.*;import leadtools.ocr.*;public void downloadDocumentExample() throws IOException, URISyntaxException {final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";URI documentUri = new URI("https://demo.leadtools.com/images/pdf/leadtools.pdf");String documentFile1 = combine(LEAD_VARS_IMAGES_DIR, "downloaded1.pdf");String documentFile2 = combine(LEAD_VARS_IMAGES_DIR, "downloaded2.pdf");// Setup a cacheFileCache cache = new FileCache();cache.setCacheDirectory("c:\\cache-dir");String documentId;// Load a document into the cacheLoadDocumentOptions loadDocumentOptions = new LoadDocumentOptions();loadDocumentOptions.setCache(cache);LEADDocument document = DocumentFactory.loadFromUri(documentUri, loadDocumentOptions);// Get its document ID and save itdocumentId = document.getDocumentId();document.setAutoDeleteFromCache(false);document.setAutoSaveToCache(false);document.saveToCache();// Now download it all at once into a memory streamDownloadDocumentOptions downloadDocumentOptions = new DownloadDocumentOptions();downloadDocumentOptions.setCache(cache);downloadDocumentOptions.setDocumentId(documentId);downloadDocumentOptions.setOffset(0);downloadDocumentOptions.setLength(-1);ILeadStream stream = LeadStreamFactory.create(documentFile1);downloadDocumentOptions.setStream(stream);long bytes = DocumentFactory.downloadDocument(downloadDocumentOptions);System.out.printf("Downloaded %s bytes into the stream%n", bytes);long annotations = DocumentFactory.downloadAnnotations(downloadDocumentOptions);System.out.println(annotations + " annotations downloaded");// The following method is obsolete. Use// DownloadAnnotations(DownloadDocumentOptions) insteadint annotations2 = DocumentFactory.downloadAnnotations(downloadDocumentOptions.getCache(),downloadDocumentOptions.getDocumentId(), downloadDocumentOptions.getOffset(), (int) bytes, stream);System.out.println(annotations2 + " annotations downloaded");// Save the stream to a file and show itstream.dispose();// Download it again, this time we will buffer it 32K at a timedownloadDocumentOptions = new DownloadDocumentOptions();downloadDocumentOptions.setCache(cache);downloadDocumentOptions.setDocumentId(documentId);byte[] buffer = new byte[1024 * 32];FileOutputStream output = new FileOutputStream(documentFile2);// Offset to where we are:long offset = 0;bytes = 0;do {downloadDocumentOptions.setOffset(offset);downloadDocumentOptions.setLength(buffer.length);downloadDocumentOptions.setData(buffer);downloadDocumentOptions.setDataOffset(0);bytes = (int) DocumentFactory.downloadDocument(downloadDocumentOptions);if (bytes > 0) {System.out.printf("Downloaded %s bytes into the buffer%n", bytes);// Next chunkoffset += bytes;output.write(buffer, 0, (int) bytes);// The following method is obsolete. Use// DownloadAnnotations(DownloadDocumentOptions) insteadannotations = DocumentFactory.downloadAnnotations(downloadDocumentOptions.getCache(),downloadDocumentOptions.getDocumentId(), downloadDocumentOptions.getOffset(), buffer,downloadDocumentOptions.getDataOffset(), buffer.length);System.out.println(annotations + " annotations downloaded");}} while (bytes > 0);// We are done, clean upLoadFromCacheOptions deleteFromCacheOptions = new LoadFromCacheOptions();deleteFromCacheOptions.setCache(cache);deleteFromCacheOptions.setDocumentId(documentId);DocumentFactory.deleteFromCache(deleteFromCacheOptions);assertTrue(new File(documentFile2).exists());output.close();}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
