Creates a new document stream and prepares it for the new pages to be added.
public void BeginDocument(
Stream stream,
DocumentFormat format
)
stream
The stream that will contain the new document file.
format
The format of the new document.
Note that the DocumentWriter object does not own stream and it should be kept alive between calls to BeginDocument and EndDocument. The DocumentWriter object can only be disposed by the user after EndDocument
is finished.
Use the DocumentWriter class to create multipage and searchable documents from one or more SVG, EMF, or raster image-based pages, as follows:
Refer to LEADTOOLS Document Writers for more information.
Various popular formats are supported, including PDF, DOC/DOCX, XPS, HTML, RTF, and Text. For a list of all the document formats supported, refer to the DocumentFormat enumeration.
For more information on creating documents from EMF objects, refer to DocumentWriterEmfPage.
For more information on creating mixed documents from SVG, EMF, and empty pages; refer to DocumentWriterRasterPage.
This example shows how to create a document stream from SVG-based pages using the basic functionality of the DocumentWriter class.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Document.Writer;
using Leadtools.Ocr;
public void DocumentWriterStreamExample()
{
var inputFileName = Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.docx");
var outputFileName = Path.Combine(LEAD_VARS.ImagesDir, "Example.pdf");
// Setup a new RasterCodecs object
var codecs = new RasterCodecs();
codecs.Options.RasterizeDocument.Load.Resolution = 300;
// Get the number of pages in the input document
var pageCount = codecs.GetTotalPages(inputFileName);
// Create a new instance of the LEADTOOLS Document Writer
var docWriter = new DocumentWriter();
// Change the PDF options
var pdfOptions = docWriter.GetOptions(DocumentFormat.Pdf) as PdfDocumentOptions;
pdfOptions.DocumentType = PdfDocumentType.PdfA;
docWriter.SetOptions(DocumentFormat.Pdf, pdfOptions);
// Create a new PDF document stream
using (Stream stream = new MemoryStream())
{
docWriter.BeginDocument(stream, DocumentFormat.Pdf);
// Loop through all the pages
for (var pageNumber = 1; pageNumber <= pageCount; pageNumber++)
{
// Get the page as SVG
Debug.WriteLine("Loading page {0}", pageNumber);
var page = new DocumentWriterSvgPage();
page.SvgDocument = codecs.LoadSvg(inputFileName, pageNumber, null);
// Add the page
Debug.WriteLine("Adding page {0}", pageNumber);
docWriter.AddPage(page);
page.SvgDocument.Dispose();
}
// Finally finish writing the PDF file on disk
docWriter.EndDocument();
codecs.Dispose();
// Save the stream to the output file
stream.Seek(0, SeekOrigin.Begin);
using (var fileStream = File.Create(outputFileName))
stream.CopyTo(fileStream);
Debug.WriteLine("Creating new PDF document: {0}", outputFileName);
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}