Convert PST or OST documents to different formats
Leave feedback
GroupDocs.Conversion provides a flexible API to control the conversion of documents that contain other documents.
The following code snippet shows how to convert each constituent file of the Outlook Offline Data File (OST) to a different format based on its content type:
NoteFrom v22.12 and greater
var index = 1;
LoadOptions LoadOptionsProvider(FileType sourceType)
{
if (sourceType == EmailFileType.Ost)
{
return new PersonalStorageLoadOptions
{
ConvertOwned = true,
ConvertOwner = false,
Folder = @"Root - Mailbox",
Depth = 2
};
}
return null;
}
Stream ConvertedStreamProvider(FileType targetType)
{
string outputFile = $"converted-{index++}.{targetType.Extension}"
return new FileStream(outputFile, FileMode.Create);
}
ConvertOptions ConvertOptionsProvider(string sourceDocumentName, FileType sourceType)
{
if (sourceType == EmailFileType.Msg)
{
return new PdfConvertOptions();
}
return new WordProcessingConvertOptions();
}
using (var converter = new Converter("sample.ost", LoadOptionsProvider))
{
converter.Convert(ConvertedStreamProvider, ConvertOptionsProvider);
}
NoteBefore v22.12
var index = 1;
LoadOptions LoadOptionsProvider(FileType sourceType)
{
if (sourceType == PersonalStorageFileType.Ost)
{
return new PersonalStorageLoadOptions
{
ConvertOwned = true,
ConvertOwner = false,
Folder = @"Root - Mailbox",
Depth = 2
};
}
return null;
}
Stream ConvertedStreamProvider(FileType targetType)
{
string outputFile = $"converted-{index++}.{targetType.Extension}"
return new FileStream(outputFile, FileMode.Create);
}
ConvertOptions ConvertOptionsProvider(string sourceDocumentName, FileType sourceType)
{
if (sourceType == EmailFileType.Msg)
{
return new PdfConvertOptions();
}
return new WordProcessingConvertOptions();
}
using (var converter = new Converter("sample.ost", LoadOptionsProvider))
{
converter.Convert(ConvertedStreamProvider, ConvertOptionsProvider);
}
Was this page helpful?
Any additional feedback you'd like to share with us?
Please tell us how we can improve this page.
Thank you for your feedback!
We value your opinion. Your feedback will help us improve our documentation.