Converter

Converter class

Represents main class that controls document conversion process.

public sealed class Converter : IDisposable

Constructors

Name Description
Converter(Func<Stream>) Initializes new instance of Converter class.
Converter(string) Initializes new instance of Converter class.
Converter(Func<Stream>, Func<ConverterSettings>) Initializes new instance of Converter class.
Converter(string, Func<ConverterSettings>) Initializes new instance of Converter class.
Converter(Func<Stream>, Func<LoadContext, LoadOptions>, Func<ConverterSettings>) Initializes new instance of Converter class.
Converter(string, Func<LoadContext, LoadOptions>, Func<ConverterSettings>) Initializes new instance of Converter class.

Methods

Name Description
Convert(ConvertOptions, Action<ConvertedContext>, CancellationToken) Converts source document. Saves the whole converted document.
Convert(ConvertOptions, Action<ConvertedPageContext>, CancellationToken) Converts source document. Saves the converted document page by page.
Convert(Func<ConvertContext, ConvertOptions>, Action<ConvertedContext>, CancellationToken) Converts source document. Saves the whole converted document.
Convert(Func<ConvertContext, ConvertOptions>, Action<ConvertedPageContext>, CancellationToken) Converts source document. Saves the converted document page by page.
Convert(Func<SaveContext, Stream>, ConvertOptions, CancellationToken) Converts source document. Saves the whole converted document.
Convert(Func<SaveContext, Stream>, Func<ConvertContext, ConvertOptions>, CancellationToken) Converts source document. Saves the whole converted document.
Convert(Func<SavePageContext, Stream>, ConvertOptions, CancellationToken) Converts source document. Saves the converted document page by page.
Convert(Func<SavePageContext, Stream>, Func<ConvertContext, ConvertOptions>, CancellationToken) Converts source document. Saves the converted document page by page.
Convert(string, ConvertOptions, CancellationToken) Converts source document. Saves the whole converted document.
Dispose() Releases resources.
GetDocumentInfo() Gets source document info - pages count and other document properties specific to the file type.
GetDocumentInfo<T>() Gets source document info - pages count and other document properties specific to the file type.
GetPossibleConversions() Gets possible conversions for the source document.
IsDocumentPasswordProtected() Checks is source document is password protected
static GetAllPossibleConversions() Gets all supported conversions
static GetPossibleConversions(string) Gets supported conversions for provided document extension

Examples

Basic conversion from file path:

// Convert DOCX to PDF
using (var converter = new Converter("sample.docx"))
{
    var options = new PdfConvertOptions();
    converter.Convert("output.pdf", options);
}

Conversion with custom options:

// Convert DOCX to PDF with watermark and specific page range
using (var converter = new Converter("sample.docx"))
{
    var options = new PdfConvertOptions
    {
        PageNumber = 1,
        PagesCount = 3,
        Watermark = new WatermarkTextOptions("CONFIDENTIAL")
        {
            Color = System.Drawing.Color.Red,
            Width = 300,
            Height = 100
        }
    };
    converter.Convert("output.pdf", options);
}

Conversion from stream:

// Convert document from stream to stream
using (var sourceStream = File.OpenRead("sample.docx"))
using (var converter = new Converter(() => sourceStream))
using (var outputStream = File.Create("output.pdf"))
{
    var options = new PdfConvertOptions();
    converter.Convert((SaveContext context) => outputStream, options);
}

Conversion with load options (password-protected document):

// Load password-protected document and convert to PDF
var loadOptions = new WordProcessingLoadOptions
{
    Password = "secret_password"
};
using (var converter = new Converter("protected.docx", (LoadContext context) => loadOptions))
{
    var convertOptions = new PdfConvertOptions();
    converter.Convert("output.pdf", convertOptions);
}

Page-by-page conversion:

// Convert document pages to separate image files
using (var converter = new Converter("sample.pdf"))
{
    var options = new ImageConvertOptions
    {
        Format = ImageFileType.Png
    };

    converter.Convert(
        (SavePageContext context) => File.Create($"page-{context.Page}.png"),
        options
    );
}

Get document information:

// Retrieve document metadata before conversion
using (var converter = new Converter("sample.docx"))
{
    var info = converter.GetDocumentInfo();
    Console.WriteLine($"Document has {info.PagesCount} pages");
    Console.WriteLine($"Format: {info.Format}");
    Console.WriteLine($"Size: {info.Size} bytes");
}

See Also