This example demonstrates standard open-edit-save cycle with WordProcessing documents, using different options on every step.
How to edit Word document?
WordProcessing is the most used and known document family format, that includes DOC, DOT, DOCX, DOCM, DOTX, ODT, RTF and much more. All these formats are supported by the GroupDocs.Editor.
There are two processing modes for WordProcessing documents:
float (default)
paged (also known as paginal).
In the float mode, when document is opened for editing and loaded into WYSIWYG client-side HTML-editor, it is represented without pages, like a single page text document. In counterpart to this, when paged mode is enabled, document content is divided onto pages. For proper usage paged mode, if enabled, should be enabled in both edit options and save options simultaneously (this is described below).
Loading WordProcessing documents
First of all user must open a document by loading it into the Editor class instance. This example demonstrates how to load the password-protected document from the stream. So, let’s suppose we have an encoded DOCX, and user knows its password. First of all, you need to create a load options.
Please note that if document has no protection, the password will be ignored. However, if document is protected, but user has not specified a password, a PasswordRequiredException will be thrown during document editing.
Next step is to load the document from stream into the Editor class with load options.
When document is loaded, it can be edited (transformed to EditableDocument class), and this process can be adjusted with edit options. Let’s create them:
WordProcessingEditOptionseditOptions=newWordProcessingEditOptions();//#1
editOptions.setFontExtraction(FontExtractionOptions.ExtractEmbeddedWithoutSystem);//#2
editOptions.setEnableLanguageInformation(true);//#3
//5.3. Switch to pagination mode instead of default float mode
editOptions.setEnablePagination(true);//#4
Let’s describe the code above line by line. Line #1 - every supported document family format has its own options class. So for all WordProcessing formats you need to apply the WordProcessingEditOptions . The same for other formats — SpreadsheetEditOptions for all spreadsheet-based formats (like XLS, ODS etc.) and so on. Line #2 - specifies font extraction options. By default no fonts are extracted from the document, but with this option user can specify, which fonts categories should be extracted and saved in the EditableDocument instance. Line #3 - enables extracting language information for better subsequent spell-checking on client side. Finally, line #4 switches document processing mode from float (default) to the paged.
After preparing options the previously loaded document can be edited:
First string contains all HTML markup without resources, while second List contains all resources (images, fonts, and stylesheets).
Modifying document content
Let’s imagine that user passed HTML markup and resources, obtained from EditableDocument instance, to the WYSIWYG-editor, edited the document on client-side and obtained back a modified HTML markup.
Now user needs to create new EditableDocument instance from this modified markup.
When user specifies a password, GroupDocs.Editor encrypts the document with this password. So, when document will be saved, it can be opened only with the password.
You can set locale for output WordProcessing document manually.
If document is really huge and causes OutOfMemoryException, you can set memory optimization option
You can protect document from writing (make it read-only) with password. Please note that this is write protection, and it is separate from opening protection, that was installed above.
Finally, user should save an edited document into the stream with prepared save options.