[SerializableAttribute()]
[DataContractAttribute()]
public class LtdDocumentOptions : DocumentOptions
The options set in the LtdDocumentOptions class will be used when the user saves a document using the DocumentFormat.Ltd format.
The LEADTOOLS Temporary Document (LTD) format is a proprietary that support appending pages to an existing file, therefore, you can use the LTD format if you have large amount of pages to convert over multiple sessions. When calling the DocumentWriter.BeginDocument method with the DocumentFormat.Ltd format, the toolkit will check if the output file specified exists on disk. If it does, the new pages will be appended to the end of the file. When you are finished adding all the pages, you can use the DocumentWriter.Convert method to convert this temporary file to the desired output format such as PDF, HTML or DOC.
To change the options used with the LTD format, perform the following steps:
Note that this format supports both DocumentWriter.AddPage and DocumentWriter.InsertPage.
Currently, the LtdDocumentOptions class contains no extra options.
This example will create a new LEADTOOLS Temporary Document (LTD) over multiple sessions then convert the result to a PDF file.
using Leadtools.Document.Writer;
using Leadtools;
using Leadtools.Codecs;
public void LtdDocumentOptionsExample()
{
var inputFileName = Path.Combine(LEAD_VARS.ImagesDir, "test_2.docx");
var outputFileName = Path.Combine(LEAD_VARS.ImagesDir, "test_Example_password.pdf");
var ltdFileName = Path.Combine(LEAD_VARS.ImagesDir, "Example2.ltd");
// Check if the LTD file exists, if so, delete it so we start a new session
if (File.Exists(ltdFileName))
File.Delete(ltdFileName);
// Get the number of pages
int pageCount;
using (var codecs = new RasterCodecs())
{
codecs.Options.RasterizeDocument.Load.Resolution = 300;
pageCount = codecs.GetTotalPages(inputFileName);
}
// Loop through the pages and add them to the LTD
for (var pageNumber = 1; pageNumber <= pageCount; pageNumber++)
{
AppendToLtd(inputFileName, pageNumber, ltdFileName);
}
// Create a new instance of the LEADTOOLS Document Writer
var docWriter = new DocumentWriter();
// Set the PDF options to be PDF/A with Image/Text
var pdfOptions = docWriter.GetOptions(DocumentFormat.Pdf) as PdfDocumentOptions;
pdfOptions.DocumentType = PdfDocumentType.PdfA;
pdfOptions.ImageOverText = true;
docWriter.SetOptions(DocumentFormat.Pdf, pdfOptions);
// Now convert the LTD file we generated to PDF
Debug.WriteLine("Converting LTD to PDF");
docWriter.Convert(ltdFileName, outputFileName, DocumentFormat.Pdf);
}
private void AppendToLtd(string inputFileName, int pageNumber, string ltdFileName)
{
// This assumes we are in a separate session than the main program, so create
// a new instance of the RasterCodecs and DocumentWriter objects we need
var docWriter = new DocumentWriter();
using (var codecs = new RasterCodecs())
{
codecs.Options.RasterizeDocument.Load.Resolution = 300;
// Create a new (or append if the file exists) LTD document
docWriter.BeginDocument(ltdFileName, DocumentFormat.Ltd);
// Load the page as SVG document and as Raster image
Debug.WriteLine("Loading page {0} ...", pageNumber);
using (var svgDocument = codecs.LoadSvg(inputFileName, pageNumber, null))
using (var image = codecs.Load(inputFileName, pageNumber))
{
// Add the page, notice we will be using image/text feature
var page = new DocumentWriterSvgPage();
page.SvgDocument = svgDocument;
page.Image = image;
Debug.WriteLine("Adding page {0} ...", pageNumber);
docWriter.AddPage(page);
}
}
// Finally finish writing the PDF file on disk
docWriter.EndDocument();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}