Creates a new document stream and prepares it for the new pages to be added.
public void BeginDocument(Stream stream,DocumentFormat format)
Public Sub BeginDocument(ByVal stream As Stream,ByVal format As DocumentFormat)
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 an example of creating documents from EMF objects, refer to DocumentWriterEmfPage.
For an example of 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 objectvar codecs = new RasterCodecs();codecs.Options.RasterizeDocument.Load.Resolution = 300;// Get the number of pages in the input documentvar pageCount = codecs.GetTotalPages(inputFileName);// Create a new instance of the LEADTOOLS Document Writervar docWriter = new DocumentWriter();// Change the PDF optionsvar pdfOptions = docWriter.GetOptions(DocumentFormat.Pdf) as PdfDocumentOptions;pdfOptions.DocumentType = PdfDocumentType.PdfA;docWriter.SetOptions(DocumentFormat.Pdf, pdfOptions);// Create a new PDF document streamusing (Stream stream = new MemoryStream()){docWriter.BeginDocument(stream, DocumentFormat.Pdf);// Loop through all the pagesfor (var pageNumber = 1; pageNumber <= pageCount; pageNumber++){// Get the page as SVGConsole.WriteLine("Loading page {0}", pageNumber);var page = new DocumentWriterSvgPage();page.SvgDocument = codecs.LoadSvg(inputFileName, pageNumber, null);// Add the pageConsole.WriteLine("Adding page {0}", pageNumber);docWriter.AddPage(page);page.SvgDocument.Dispose();}// Finally finish writing the PDF file on diskdocWriter.EndDocument();codecs.Dispose();// Save the stream to the output filestream.Seek(0, SeekOrigin.Begin);using (var fileStream = File.Create(outputFileName))stream.CopyTo(fileStream);Console.WriteLine("Creating new PDF document: {0}", outputFileName);}}static class LEAD_VARS{public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.Document.WriterImports Leadtools.OcrPublic Sub DocumentWriterStreamExample()Dim inputFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.docx")Dim outputFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Example.pdf")' Setup a New RasterCodecs objectDim codecs As New RasterCodecs()codecs.Options.RasterizeDocument.Load.Resolution = 300' Get the number of pages in the input documentDim pageCount As Integer = codecs.GetTotalPages(inputFileName)' Create a New instance of the LEADTOOLS Document WriterDim docWriter As New DocumentWriter()' Change the PDF optionsDim pdfOptions As PdfDocumentOptions = DirectCast(docWriter.GetOptions(DocumentFormat.Pdf), PdfDocumentOptions)pdfOptions.DocumentType = PdfDocumentType.PdfAdocWriter.SetOptions(DocumentFormat.Pdf, pdfOptions)' Create a New PDF document streamUsing stream As New MemoryStream()docWriter.BeginDocument(stream, DocumentFormat.Pdf)' Loop through all the pagesFor pageNumber As Integer = 1 To pageCount' Get the page as SVGConsole.WriteLine("Loading page {0}", pageNumber)Dim page As New DocumentWriterSvgPage()page.SvgDocument = codecs.LoadSvg(inputFileName, pageNumber, Nothing)' Add the pageConsole.WriteLine("Adding page {0}", pageNumber)docWriter.AddPage(page)page.SvgDocument.Dispose()Next' Finally finish writing the PDF file on diskdocWriter.EndDocument()codecs.Dispose()' Save the stream to the output filestream.Seek(0, SeekOrigin.Begin)Using fileStream As Stream = File.Create(outputFileName)stream.CopyTo(fileStream)End UsingConsole.WriteLine("Creating new PDF document: {0}", outputFileName)End UsingEnd SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"End Class
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
