Options to use for automatically uploading the converted document to the cache.
public UploadDocumentOptions UploadDocumentOptions { get; set; }
Options to use for automatically upload the converted document to the cache. Default value is null.
One output must be specified for the conversion to be successful: One of OutputAnnotationsFileName, OutputDocumentStream or UploadDocumentOptions must not be null.
If UploadDocumentUri is specified, then DocumentConverter will perform the following:
Convert the document as usual to either a temporary file or stream depending on the value of RasterDefaults.TempFileMode.
If the conversion is successful, the converter will then upload the result document using uploadDocumentOptions to upload the document to the cache. The uploaded document URI will be stored in DocumentConverterJob.UploadDocumentUri.
The following example will save a document to the cache, then convert it and automatically upload it.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Document.Writer;
using Leadtools.Svg;
using LeadtoolsExamples.Common;
using Leadtools.Document;
using Leadtools.Caching;
using Leadtools.Annotations.Engine;
using Leadtools.Ocr;
using Leadtools.Document.Converter;
using Leadtools.Annotations.Rendering;
public static void UploadToCacheExample()
{
// We will be converting this TIFF file to PDF
string imageUrl = "https://demo.leadtools.com/images/tiff/ocr.tif";
// Download the final document to this file
string outputFile = @"c:\temp\output.pdf";
string inputDocumentId = null;
Uri outputDocumentUrl = null;
// Setup the cache
FileCache cache = new FileCache();
cache.CacheDirectory = @"c:\temp\cache";
// Load the document and save it to the cache
var loadDocumentOptions = new LoadDocumentOptions();
loadDocumentOptions.Cache = cache;
Console.WriteLine("Saving input document into the cache");
using (LEADDocument document = DocumentFactory.LoadFromUri(new Uri(imageUrl), loadDocumentOptions))
{
// Store the document ID to use it later
inputDocumentId = document.DocumentId;
// Make sure the document persist on the cache after we dispose it
document.AutoSaveToCache = false;
document.AutoDeleteFromCache = false;
document.SaveToCache();
}
// Convert the document to PDF and automatically upload it
using (var ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD))
{
ocrEngine.Startup(null, null, null, null);
using (var documentConverter = new DocumentConverter())
{
documentConverter.SetOcrEngineInstance(ocrEngine, false);
var jobData = new DocumentConverterJobData();
// Input
jobData.DocumentId = inputDocumentId;
jobData.Cache = cache;
// Output, upload to the same cache as a new document
var uploadDocumentOptions = new UploadDocumentOptions();
uploadDocumentOptions.Cache = cache;
jobData.UploadDocumentOptions = uploadDocumentOptions;
// Options
jobData.DocumentFormat = DocumentFormat.Pdf;
// Run
Console.WriteLine("Converting {0} and uploading", inputDocumentId);
var job = documentConverter.Jobs.CreateJob(jobData);
documentConverter.Jobs.RunJob(job);
Console.WriteLine(job.Status);
if (job.Status != DocumentConverterJobStatus.Aborted)
{
Console.WriteLine("Downloading {0}", job.UploadDocumentUri);
// Download it from the cache to the output file
using (var stream = File.Create(outputFile))
{
var downloadDocumentOptions = new DownloadDocumentOptions();
downloadDocumentOptions.Cache = cache;
downloadDocumentOptions.DocumentId = job.UploadDocumentUri.ToString();
downloadDocumentOptions.Offset = 0;
downloadDocumentOptions.Length = -1;
downloadDocumentOptions.Stream = stream;
DocumentFactory.DownloadDocument(downloadDocumentOptions);
}
outputDocumentUrl = job.UploadDocumentUri;
Process.Start(outputFile);
}
}
}
// Clean up
var deleteFromCacheOptions = new LoadFromCacheOptions();
deleteFromCacheOptions.Cache = cache;
if (inputDocumentId != null)
{
deleteFromCacheOptions.DocumentId = inputDocumentId;
DocumentFactory.DeleteFromCache(deleteFromCacheOptions);
}
if (outputDocumentUrl != null)
{
deleteFromCacheOptions.DocumentId = outputDocumentUrl.ToString();
DocumentFactory.DeleteFromCache(deleteFromCacheOptions);
}
}