Document(Stream, LoadOptions) Constructor

Opens an existing document from a stream. Allows to specify additional options such as an encryption password.

Namespace:  Aspose.Words
Assembly:  Aspose.Words (in Aspose.Words.dll) Version: 20.8.0


public Document(
	Stream stream,
	LoadOptions loadOptions


Type: System.IOStream
The stream where to load the document from.
Type: Aspose.WordsLoadOptions
Additional options to use when loading a document. Can be null.


UnsupportedFileFormatExceptionThe document format is not recognized or not supported.
FileCorruptedExceptionThe document appears to be corrupted and cannot be loaded.
ExceptionThere is a problem with the document and it should be reported to Aspose.Words developers.
IOExceptionThere is an input/output exception.
IncorrectPasswordExceptionThe document is encrypted and requires a password to open, but you supplied an incorrect password.
ArgumentNullExceptionThe stream cannot be null.
NotSupportedExceptionThe stream does not support reading or seeking.
ObjectDisposedExceptionThe stream is a disposed object.


The document must be stored at the beginning of the stream. The stream must support random positioning.


Shows how to open an HTML document with images from a stream using a base URI.
// Open the stream
using (Stream stream = File.OpenRead(MyDir + "Document.html"))
    // Pass the URI of the base folder so any images with relative URIs in the HTML document can be found
    // Note the Document constructor detects HTML format automatically
    LoadOptions loadOptions = new LoadOptions();
    loadOptions.BaseUri = ImageDir;

    doc = new Document(stream, loadOptions);
Shows how to load a Microsoft Word document encrypted with a password.
// If we try open an encrypted document without the password, an IncorrectPasswordException will be thrown
// We can construct a LoadOptions object with the correct encryption password
LoadOptions options = new LoadOptions("docPassword");

// Then, we can use that object as a parameter when opening an encrypted document
Document doc = new Document(MyDir + "Encrypted.docx", options);

using (Stream stream = File.OpenRead(MyDir + "Encrypted.docx"))
    doc = new Document(stream, options);
Shows how to insert the HTML contents from a web page into a new document.
// The url of the page to load 
const string url = "";

// Create a WebClient object to easily extract the HTML from the page
WebClient client = new WebClient();
string pageSource = client.DownloadString(url);

// Get the HTML as bytes for loading into a stream
Encoding encoding = client.Encoding;
byte[] pageBytes = encoding.GetBytes(pageSource);

// Load the HTML into a stream
using (MemoryStream stream = new MemoryStream(pageBytes))
    // The baseUri property should be set to ensure any relative img paths are retrieved correctly
    LoadOptions options = new LoadOptions(Aspose.Words.LoadFormat.Html, "", url);

    // Load the HTML document from stream and pass the LoadOptions object
    Document doc = new Document(stream, options);

    // Save the document to the local file system while converting it to .docx
    doc.Save(ArtifactsDir + "Document.InsertHtmlFromWebPage.docx");

See Also