This guide explains how to load a document from a local disk or file stream for editing using the GroupDocs.Editor for Python via .NET API.
Introduction
In this article, you will learn how to load an input document into GroupDocs.Editor and apply load options.
Loading Documents
To load an input document, which should be accessible either as a binary stream or through a valid file path, create an instance of the Editor class using one of its constructor overloads. Below are examples of loading documents from a file path and from a stream.
fromgroupdocs.editorimportEditor# Load document from a file patheditor=Editor("document.docx")# Load document from a binary streamwithopen("document.docx","rb")asstream:editor=Editor(stream)
When using the constructor overloads shown above, GroupDocs.Editor automatically detects the format of the input document and applies the most suitable default loading options. However, it is recommended to specify the correct loading options explicitly by using constructor overloads that accept two parameters. Here is how you can do this:
fromgroupdocs.editorimportEditorfromgroupdocs.editor.optionsimportWordProcessingLoadOptions,SpreadsheetLoadOptions# Load document from a file path with load optionsword_load_options=WordProcessingLoadOptions()editor=Editor("document.docx",word_load_options)# Load document from a stream with load optionsspreadsheet_load_options=SpreadsheetLoadOptions()withopen("spreadsheet.xlsx","rb")asstream:editor=Editor(stream,spreadsheet_load_options)
The following complete example loads a document from a local file path with load options and prints its basic metadata:
importosfromgroupdocs.editorimportEditor,Licensefromgroupdocs.editor.optionsimportWordProcessingLoadOptionsdefload_document():# Optionally set a licenselicense_path=os.path.abspath("./GroupDocs.Editor.lic")ifos.path.exists(license_path):License().set_license(license_path)# Prepare load options for the WordProcessing familyload_options=WordProcessingLoadOptions()# Load the document from a local file path with load optionswithEditor("./sample-document.docx",load_options)aseditor:info=editor.get_document_info()print("Loaded:",info.format.name,"-",info.page_count,"page(s)")if__name__=="__main__":load_document()
sample-document.docx is the sample file used in this example. Click here to download it.
Loaded: Office Open XML WordProcessingML Macro-Free Document (DOCX) - 3 page(s)
Please note that not all document formats have associated classes for load options. Only the WordProcessing, Spreadsheet, Presentation families, and a distinct PDF format have specific load options classes. Other formats, such as DSV, TXT, or XML, do not have load options.
Using load options is essential when working with password-protected documents. Any document can be loaded into the Editor instance, even if it is password-protected. However, if the password is not handled correctly, an exception will be thrown during the editing process. Here is how GroupDocs.Editor handles passwords:
If the document is not password-protected, any specified password will be ignored.
If the document is password-protected but no password is specified, a PasswordRequiredException will be thrown during editing.
If the document is password-protected and an incorrect password is provided, an IncorrectPasswordException will be thrown during editing.
The example below demonstrates how to specify a password for opening a password-protected WordProcessing document: