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

Syntax

public Document(
	Stream stream,
	LoadOptions loadOptions
)

Parameters

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

Exceptions

ExceptionCondition
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.

Remarks

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

Examples

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 = "http://www.aspose.com/";

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

// 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