Load document

This article describes how to load input document to the GroupDocs.Editor and how to apply load options.

First of all the input document, which should be accessible as a byte stream or through valid file path, should be loaded into the GroupDocs.Editor by creating an instance of the Editor class through one of the constructor overloads. 
If the input document is presented as a stream, it should be loaded through delegate. Source code below shows two ways of loading documents: from path and from stream.

//through path
String inputFilePath = "C:\\input_path\\document.docx"; //path to some document
Editor editor = new Editor(inputFilePath);

//through stream
InputStream inputStream = new FileInputStream(inputFilePath);
Editor editor = new Editor(inputStream);

When two overloads from example above are used, GroupDocs.Editor automatically detects the format of input document and applies the most appropriate default loading options for the input document. 
However, it is possible and even recommended to specify correct loading options explicitly using constructor overloads, which accept two parameters. Like streams, loading options should be specified through delegates. 
Source code below shows using such options.

//through path
String inputFilePath = "C:\\input_path\\document.docx"; //path to some document
WordProcessingLoadOptions wordLoadOptions = new WordProcessingLoadOptions();
Editor editor1 = new Editor(inputFilePath, wordLoadOptions); //passing path and load options (via delegate) to the constructor

//through stream
InputStream inputStream = new ByteArrayInputStream(new byte[0]); //obtained from somewhere
SpreadsheetLoadOptions spreadsheetLoadOptions = new SpreadsheetLoadOptions();
Editor editor = new Editor(inputStream, spreadsheetLoadOptions);

Please note that not all document formats have appropriate classes, that represent load options. As for version 19.10, only WordProcessing, Spreadsheet and Presentation family formats have load options. For other document types, such as DSV, TXT or XML, there are no load options.

Format familyExample formatsLoad options class
WordProcessingDOC, DOCX, DOCM, DOT, ODTWordProcessingLoadOptions
SpreadsheetXLS, XLSX, XLSM, XLSBSpreadsheetLoadOptions
PresentationPPT, PPTX, PPS, POTPresentationLoadOptions

Using load options is the only way for working with password-protected input documents. Any document can be loaded into the Editor instance, even encoded document without the password. However, on the next step — opening for editing, — the exception will be thrown. GroupDocs.Editor handles passwords and encoded documents in the next way:

  1. If document is not encoded, password is ignored anyway, whether or not it was specified.
  2. If document is password-protected, but password is not specified, the PasswordRequiredException will be thrown later during editing.
  3. If document is password-protected, and password is specified, but is incorrect, the IncorrectPasswordException will be thrown later during editing.

Example below shows specifying password for opening some password-protected WordProcessing document.

Stream inputStream = getDocumentStreamFromSomewhere();
WordProcessingLoadOptions wordLoadOptions = new WordProcessingLoadOptions();
wordLoadOptions.setPassword("correct_password");
Editor editor = new Editor(inputFilePath, wordLoadOptions);

More resources

Advanced Usage Topics

To learn more about document viewing features, please refer to the advanced usage section.

GitHub Examples

You may easily run the code above and see the feature in action in our GitHub examples:

Free Online App

Along with full-featured Java library we provide simple but powerful free Apps.
You are welcome to edit your Microsoft Word (DOC, DOCX, RTF etc.), Microsoft Excel (XLS, XLSX, CSV etc.), Open Document (ODT, OTT, ODS) and other documents with free to use online GroupDocs Editor App.